Какой обработчик события использовать ?
Добрый день.
Имеем input1 и input2. При занесении числа в input1 происходит некое вычисление, результат которого заносится в input2. По задумке нужно сделать, что б после того, как input2 получит значение, срабатывала функция. Каким обработчиком ее вызвать ? Пробывал "onchange" - бестолку. |
lolka84 где ваш код?
На вскидку: <form name="forma"> <input type="text" /> <input type="text" /> </form> <script type="text/javascript"> window.onload = function(){ var event = ['keyup', 'change']; for(i=0; i<event.length; i++){ document.forms['forma']['on'+event[i]] = function(i){ return function(){ this.elements[1].value = (this.elements[0].value == '') ? '' : eval(this.elements[0].value); }; }(i); } }; </script> |
monolithed, код тут особого значения не имеет, это так сказать "вопрос общего плана" :)
Насчет вашего примера: немного неправильно меня поняли. Имеем: <form name="forma"> <input id="one" type="text" value="" onkeyup="func();" /> <input id="two" type="text" value="" readonly СОБЫТИЕ???="func1();" /> <input id="free" type="text" value="" readonly /> </form> <script type="text/javascript"> function func() { var in1 = document.getElementById("one"), in2 = document.getElementById("two"); in2.value = Number(in1.value) + 5; } function func1() { var in2 = document.getElementById("two"), in3 = document.getElementById("free"); in3.value = Number(in2.value) + 3; } </script> Т.е. вводим число в инпут1, функция считает, бросает результат в инпут2, другая функция опять считает и выводит итог в инпут3. Можно канешно сделать с помощью return func1();но по ряду причин делать так не хочу. |
Цитата:
<form name="forma"> <input type="text" /> <input type="text" /> <input type="text" /> </form> <script type="text/javascript"> window.onload = function(){ var event = ['keyup', 'change']; for(i=0; i<event.length; i++){ document.forms['forma']['on'+event[i]] = function(i){ return function(){ this.elements[1].value = this.elements[0].value == '' ? '' : eval(this.elements[0].value) + 5; this.elements[2].value = this.elements[0].value == '' ? '' : eval(this.elements[1].value) + 5; }; }(i); } }; </script> Цитата:
|
monolithed, спасибо.
А почему тогда не работает, если просто написать <input id="two" type="text" value="" readonly onchange="func1();" /> ? |
Цитата:
2. проанализируйте мой код, там два события, и поймите почему именно два |
Цитата:
Цитата:
|
Цитата:
http://ru.wikipedia.org/wiki/Model-View-Controller |
Спасибо.
|
Часовой пояс GMT +3, время: 23:54. |