如何将HTML中内联的Javascript事件处理程序转换为参数化?
快速javascript问题。我正在创建一个简单的脚本,其中表单字段条目使用onfocus和onblur消失/重新出现 我想知道为什么以下内联脚本可以工作:如何将HTML中内联的Javascript事件处理程序转换为参数化?,javascript,html,javascript-events,Javascript,Html,Javascript Events,快速javascript问题。我正在创建一个简单的脚本,其中表单字段条目使用onfocus和onblur消失/重新出现 我想知道为什么以下内联脚本可以工作: <div> <input type="text" name="email" id="email" value="Requires validation" onfocus="if(this.value == 'Requires validation'){this.value = '';}" onblur="formappea
<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>
函数formclear(字段){
如果(field.value==“需要验证”){
field.value=“”;
}
}
我感谢您提前回复,我确信这是我犯的一个简单错误。不要传入
这个.id
,只要传入这个
<input type="text" name="email" id="email" value="Requires validation" onfocus="formclear(this)" onblur="formappear()">
演示:
您正在传递输入的
id
,因此当您使用字段.value
时,它实际上是在尝试发送电子邮件。value
不存在。因为您传递的是id
而不是this将值作为formclear(this)
而不是formclear传递(this.id)
<input type="text" name="email" id="email" value="Requires validation" onfocus="formclear(this)" onblur="formappear()">
谢谢你的回答,我犯了个愚蠢的错误,但我一直在学习。我会在有能力的时候接受答案。