Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将HTML中内联的Javascript事件处理程序转换为参数化?_Javascript_Html_Javascript Events - Fatal编程技术网

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

如何将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

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

我想知道为什么以下内联脚本可以工作:

<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()">

谢谢你的回答,我犯了个愚蠢的错误,但我一直在学习。我会在有能力的时候接受答案。