Объединение подобных функций
Здравствуйте все!!!
И сразу к делу: Имеется таблица, каждая строка в которой реализованная следующим образом: <tr> <td class="kolonka_1"><a href="#" onclick="delete_tr(this)"><img src="img/del.gif" alt="Удалить строку"></a></td> <td class="kolonka_2">Торт</td> <td class="kolonka_3"> <input name="k_3_1" type="num" value="0" onchange="rez(); return true;"> </td> <td class="kolonka_4"> <input name="k_4_1" type="num" value="0" onchange="rez(); return true;"> </td> <td class="kolonka_5"> <select> <option></option> <option> шт. </option> <option> кг. </option> <option> чел. </option> <option> час. </option> </select> </td> <td class="kolonka_6"> <input type="num" name="k_6_1" value="0"> </td> <td class="kolonka_7"> <input type="num" name="k_7_1" value="0"> </td> <td class="kolonka_8"> <input type="num" name="k_8_1" value="0"> </td> </tr> Функция rez() представляет собой следующее: function rez() { var val1 = parseInt(document.kalk.k_3_1.value); var val2 = parseInt(document.kalk.k_4_1.value); var val3 = val1 * val2; document.kalk.k_6_1.value = val3; } И все вроде бы хорошо и все вроде считает, НО... Вот это большое "но" заключается в том что строк в таблице 118 и, в принципе, можно написать 118 функций с разными именами, но это реально извращение. Подскажите, как организовать функцию чтоб все это упростить??? |
<tr> <td class="kolonka_1"><a href="#" onclick="delete_tr(this)"><img src="img/del.gif" alt="Удалить строку"></a></td> <td class="kolonka_2">Торт</td> <td class="kolonka_3"> <input name="k_3_1" type="num" value="0" onchange="rez(1); return true;"> </td> <td class="kolonka_4"> <input name="k_4_1" type="num" value="0" onchange="rez(1); return true;"> </td> <td class="kolonka_5"> <select> <option></option> <option> шт. </option> <option> кг. </option> <option> чел. </option> <option> час. </option> </select> </td> <td class="kolonka_6"> <input type="num" name="k_6_1" value="0"> </td> <td class="kolonka_7"> <input type="num" name="k_7_1" value="0"> </td> <td class="kolonka_8"> <input type="num" name="k_8_1" value="0"> </td> </tr> function rez(i) { var val1 = parseInt(document.getElementsByName('kalk')[0].getElementsByName('k_3_'+i)[0].value); var val2 = parseInt(document.getElementsByName('kalk')[0].getElementsByName('k_4_'+i)[0].value); var val3 = val1 * val2; document.getElementsByName('kalk')[0].getElementsByName('k_6_'+i)[0].value = val3; } решение весьма топорное по-хорошему делу, надо бы передавать через this указатель на текущий объект, но можно и так |
Попробовал...
выдает ошибку "объект не поддерживает это свойство или метод" что делать???:cray: |
function rez(i) { var val1 = parseInt(document.kalk['k_3_'+i].value); var val2 = parseInt(document.kalk['k_4_'+i].value); var val3 = val1 * val2; document.kalk['k_6_'+i].value = val3; } |
Спасибо, теперь все работает как нужно :thanks:
|
Часовой пояс GMT +3, время: 02:47. |