Связывание события с параметрами - PullRequest
0 голосов
/ 16 февраля 2012

Я пытаюсь вызвать функцию, которая принимает параметры с событием onFocus элемента.Кроме того, я пытаюсь связать обработчик события onFocus со всеми элементами этой формы.Вот мой код.

<!--HTML Code-->
<form name="form1" id="form1">
<input type="text" name="name"/>
<input type="text" name="age"/>
<input type="text" name="gender"/>
<textarea id="cmt" multiline="multiline"></textarea>
</form>

Вот код JavaScript:

var f=document.getElementById("form1");
for(i=0;i<f.length-1;i++)
{
f.elements[i].onFocus=help(i);
}

function help(i)
{
Var help=new Array("Help for name","Help for age", "help for gender");
document.getElementById("cmt").value=help[i];
}

Этот код не работает.Я перепробовал все варианты чувствительности к регистру, поэтому не отвечайте, если ответ связан с этим.Этот код не связывает обработчик событий с элементом и вызывает функцию help три раза, а значение текстовой области устанавливается как окончательное значение i.Спасибо

1 Ответ

0 голосов
/ 29 мая 2012

В вашем коде есть ошибки.

  1. Имя обработчика события "onfocus", а не "onFocus".

  2. вы вызываете справку, когда присваиваете ее обработчику события onfocus, вместо того, чтобы просто передавать имя, например, «onfocus = help».

  3. вы не можете передать аргументы, чтобы помочь функции, просто назначив ее onfocus таким образом. Вы должны использовать закрытие для этой цели. Но это будет более запутанным и не правильным решением вашего требования. Таким образом, вместо него вы можете проверить целевой элемент, используя объект события, переданный браузером в справочной функции.

Вот ссылка на jsfiddle. Я надеюсь, что это поможет вам. http://jsfiddle.net/parth1403/N9t5J/

...