我寫了一個腳本來驗證通過表單提交的用戶名。如果用戶名稱大於5個字符,則應向用戶顯示一些消息。 我得到的錯誤是Javascript:Uncaught TypeError:無法讀取未定義的屬性「長度」
:Uncaught TypeError: Cannot read property 'length' of undefined at checkusername (eventobject.html:24) at HTMLInputElement. (eventobject.html:18)
我已經使用'模糊'事件。
代碼:
<html>
<head>
</head>
<body>
<form>
<label for="text">Username:</label>
<input type="text" id="text" />
<p id="para"></p>
</form>
<script>
var el=document.getElementById("text");
el.addEventListener('blur',function(){checkusername(5);},false);
var msg=document.getElementById("para");
function checkusername(min)
{
if(this.value.length<min)
{
msg.textContent="username less than 5 characters";
}
else
{
msg.textContent='';
}
}
</script>
</body>
</html>
上面的代碼工作正常,當我寫不帶參數相同的事件處理程序。 用於事件處理,而不傳遞參數的代碼如下所示:
<html>
<head>
</head>
<body>
<form>
<label for="text">Username:</label>
<input type="text" id="text" />
<p id="para"></p>
</form>
<script>
var el=document.getElementById("text");
el.addEventListener('blur',checkusername,false);
var msg=document.getElementById("para");
function checkusername()
{
if(this.value.length<5)
{
msg.textContent="username less than 5 characters";
}
else
{
msg.textContent='';
}
}
</script>
</body>
</html>
我用的是您在上面建議的事件調用方法。但仍然存在相同的問題。這裏是綁定方法的完整代碼。請看看代碼,並指出我是否有任何錯誤。 'el.addEventListener('blur',checkusername.bind(el,5),false); var msg = document.getElementById(「para」); 函數checkusername(el,min) { if(el.value.length