gpt4 book ai didi

javascript - 如何将 HTML 中的内联 JavaScript 事件处理程序转换为参数化?

转载 作者:行者123 更新时间:2023-11-28 01:56:14 27 4
gpt4 key购买 nike

快速 JavaScript 问题。我正在创建一个简单的脚本,其中使用 onfocusonblur 表单字段条目消失/重新出现。

我想知道为什么下面的内联脚本有效:

<div>
<input type="text" name="email" id="email" value="Requires validation"
onfocus="if(this.value == 'Requires validation'){this.value = '';}"
onblur="formappear()">
</div>

下面带有参数化函数的脚本不会:

<head>
<script type='text/javascript'>
function formclear(field) {

if (field.value == "Requires validation") {
field.value = "";
}

}
</script>
</head>
<body>
<div>
<input type="text" name="email" id="email" value="Requires validation"
onfocus="formclear(this.id)" onblur="formappear()">
</div>
</body>

感谢您提前做出的任何回应,我确信这是我犯的一个简单错误。

最佳答案

不要传入this.id,只传入this

<input type="text" name="email" id="email" value="Requires validation" onfocus="formclear(this)" onblur="formappear()">

演示:http://jsfiddle.net/se6wm/

您传递的是输入的 id,因此当您使用 field.value 时,它实际上是在尝试执行 email.value 不存在。

关于javascript - 如何将 HTML 中的内联 JavaScript 事件处理程序转换为参数化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16797908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com