带参数绑定事件

发布于 2025-01-06 07:52:47 字数 763 浏览 0 评论 0原文

我正在尝试调用一个接受元素的 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];
}

该代码不起作用。我已经尝试了区分大小写的所有变体,因此如果答案与此相关,请不要回答。这段代码没有将事件处理程序与元素绑定,并调用帮助函数三次,并将文本区域的值设置为i的最终值。

I am trying to call a function which accepts parameters with the onFocus event of an element. In addition, am trying to bind the onFocus event handler with all the elements of that form. Here is my code:

<!--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>

Here is the JavaScript code:

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];
}

This code is not working. I have tried all variations of case sensitivity so don't answer if the answer is related to that. This code is not binding the event handler with the element and calling the function help for three times and the value of the textarea is being set as the final value of i.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

两仪 2025-01-13 07:52:47

您的代码中存在一些错误。

  1. 事件处理程序名称是“onfocus”,而不是“onFocus”。

  2. 将其分配给“onfocus”事件处理程序时,您正在调用帮助,而不是仅传递“onfocus = help”之类的名称。

  3. 您不能通过这种方式将参数传递给帮助函数,而只是将其分配给 onfocus。为了达到这样的目的,你必须使用闭包。但这会更加混乱,并且不能正确解决您的需求。因此,您可以使用浏览器在帮助函数中传递的事件对象来检查目标元素。

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

There is some bugs in your code.

  1. event handler name is "onfocus", not "onFocus".

  2. you are calling help when when assigning it to "onfocus" event handler, instead of just passing name like "onfocus = help".

  3. you can't pass arguments to help function with just assigning it to onfocus in this way. You have to use closure for such a purpose. But it will be more confusing and not proper solution of your requirement. So, instead of it you can check the target element using event object passed by browser in help function.

Here is link of jsfiddle. I hope that it will help you.
http://jsfiddle.net/parth1403/N9t5J/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文