2

快速的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>

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

4

3 回答 3

1

不进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不存在的操作。

于 2013-05-28T17:22:02.450 回答
0

因为你传递的是id而不是this

于 2013-05-28T17:22:10.950 回答
0

传递一个值 formclear(this)而不是formclear(this.id)

<input type="text" name="email" id="email" value="Requires validation"
onfocus="formclear(this)" onblur="formappear()">
于 2013-05-28T17:23:30.047 回答