正在绑定带有参数的事件



我正在尝试调用一个函数,该函数接受元素的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. 事件处理程序名称是"onfocus",而不是"onfocus"。

  2. 当将其分配给"onfocus"事件处理程序时,您调用的是help,而不是像"onfocus=help"那样只传递名称。

  3. 通过这种方式,仅将参数分配给onfocus是无法将参数传递给help函数的。你必须使用闭包来达到这样的目的。但它会更令人困惑,并且不是您需求的正确解决方案。因此,您可以使用浏览器在帮助函数中传递的事件对象来检查目标元素。

这是jsfiddle的链接。我希望它能帮助你。http://jsfiddle.net/parth1403/N9t5J/

相关内容

  • 没有找到相关文章

最新更新