Какой обработчик события использовать ?
Добрый день.
Имеем 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, время: 09:25. |