2013-05-28 26 views
2

快速javascript問題。我創建了一個簡單的腳本,其中表單字段條目使用onfocus和onblur消失/重新出現。如何在HTML中嵌入HTML事件處理程序以進行參數化?

我不知道爲什麼下面的內嵌腳本的工作原理:

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

我感謝提前任何答覆,我我確定這是一個簡單的錯誤,我正在做。

回答

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這不存在。

+0

感謝您的答覆,愚蠢的錯誤,但我一直在學習。當我能夠時,我會接受答案。 –

+0

不斷學習的一個必要的錯誤:)。 – tymeJV

0

傳遞一個值作爲formclear(this)而不是formclear(this.id)

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