HTML表单属性“名称”未在Firefox中定义

时间:2012-01-21 22:18:54

标签: javascript firefox

以下是我的JSP页面中的示例代码:

<form name = loginform method = post action="">
<table class=registerTable>
<tr>         
    <td>Username:</td></tr>
    <tr><td>
    <input name=user type=text class=usnm required size=28 maxlength=35 autocomplete="off" onblur="validateUser()" onkeyup="checkUsernameAvailability(this.value)"><br></td></tr>
    <tr><td>
    <span id = uerrmsg class = error></span><br></td></tr>
</table>
</form>

调用onblur=validateUser()时,执行以下代码:

function validateUser(){
if(loginform.user.value.length<5){
    document.getElementById("uerrmsg").innerHTML="minimum 5 characters";
    return false;
}else{
    document.getElementById("uerrmsg").innerHTML="";
    return true;
    }
}

错误控制台在FF中出现以下错误

  

未定义loginform

请帮我解决这个问题。

PS:以上代码适用于所有其他浏览器。

3 个答案:

答案 0 :(得分:0)

您可以使用input.getAttribute(“name”)来获取输入的name属性。 这几乎适用于所有浏览器。

顺便说一句,如果你使用getElementById,你必须填充输入的“id”字段。

答案 1 :(得分:0)

您应该使用document.loginform

答案 2 :(得分:0)

您不需要此表单。 首先给你的输入一个id:id =“user”。然后,您可以使用document.getElementById()来访问它,就像使用元素一样。像这样的东西:

document.getElementById("user").value.length

此外,您的代码非常不标准,例如,您不应在属性(或其值)和=符号之间放置“”(空格)。属性的值应该在引号内(例如,查看此页面的源代码)。