Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.02.2010, 19:17
Новичок на форуме
Отправить личное сообщение для mrMAG Посмотреть профиль Найти все сообщения от mrMAG
 
Регистрация: 17.02.2010
Сообщений: 3

Объединение подобных функций
Здравствуйте все!!!
И сразу к делу:

Имеется таблица, каждая строка в которой реализованная следующим образом:
<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 функций с разными именами, но это реально извращение.

Подскажите, как организовать функцию чтоб все это упростить???
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2010, 21:46
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

<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 указатель на текущий объект, но можно и так
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2010, 11:39
Новичок на форуме
Отправить личное сообщение для mrMAG Посмотреть профиль Найти все сообщения от mrMAG
 
Регистрация: 17.02.2010
Сообщений: 3

Попробовал...
выдает ошибку "объект не поддерживает это свойство или метод"
что делать???
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2010, 13:53
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

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;
}
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2010, 15:35
Новичок на форуме
Отправить личное сообщение для mrMAG Посмотреть профиль Найти все сообщения от mrMAG
 
Регистрация: 17.02.2010
Сообщений: 3

Спасибо, теперь все работает как нужно
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цепочка функций sartas Общие вопросы Javascript 12 18.03.2011 21:33
конструкции взаимодействия функций Vitalyk Элементы интерфейса 11 25.02.2010 17:58
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
подскажите с параметрами функций hadji29 Общие вопросы Javascript 2 15.02.2009 20:39
Объединение в цикл baal1988 Общие вопросы Javascript 7 27.08.2008 09:21