功能在Chrome和IE中正常工作,但在FireFox中没有

时间:2011-07-16 11:56:02

标签: javascript forms validation

这是我用来验证表单名称字段的函数。此代码在Chrome和IE中正常运行,但在FireFox中无效。

使用firbug检查时会出现此错误:

chkForm is not defined

在这一行:

if ( chkForm.name.value == "" ).

提前致谢

function uname()
{   
    if ( chkForm.name.value == "" )
    {
        alert("Please fill in Username box");
        chkForm.name.focus();
        return false;
    }
    return true;
}

这是html表单

<form name="chkForm" id="chkForm" method="post" action="" onsubmit="return Form_Validator(this)">
<table border="0" cellpadding="0" cellspacing="0" width="550" id="table1">
    <tr>
        <td width="135">&nbsp;</td>
        <td width="138">&nbsp;</td>
        <td width="215">&nbsp;</td>
    </tr>
    <tr>
        <td width="135">Username</td>
        <td width="138">
        <input type="text" name="name" id="username" onblur="return uname()" size="20" class="input_s1_normal"></td>
        <td width="215">
        <div id="nameInfo" align="left"></div>
        </td>
    </tr>
    <tr>
        <td width="135">Email</td>
        <td width="138">
        <input type="text" name="email" id="email" size="20" class="input_s1_normal"></td>
        <td width="215">
        <div id="emailInfo" align="left"></div>
        </td>
    </tr>       
    <tr>
        <td width="135">&nbsp;</td>
        <td width="138">
        <input type="submit" value="SAVE" name="B1" class="button_s1"></td>
        <td width="215">&nbsp;</td>
    </tr>
</table>

3 个答案:

答案 0 :(得分:1)

在这里做出假设是因为看不到你的所有代码,我假设你依赖于IE和Chrome允许通过该ID的全局变量访问带有ID的元素的dom这一事实。

您需要实际定义变量并获取对节点的引用,如下所示:

var chkForm = document.getElementById('chkForm');

答案 1 :(得分:0)

您可以检查是否定义了chkForm。

它可能不是理想的方法,但你会明白如何做到这一点。

function uname()
{   
    if(!(chkForm)){
        chkForm = document.getElementByID('chkForm');
    }
    if ( chkForm.name.value == "" )
    {
        alert("Please fill in Username box");
        chkForm.name.focus();
        return false;
    }
    return true;
}

答案 2 :(得分:0)

Thanx给大家。在我的代码

中添加以下行后,此代码现在正在运行
var chkForm = document.getElementById('chkForm');


function uname()
{   
    var chkForm = document.getElementById('chkForm');
    if ( chkForm.name.value == "" )
    {
        alert("Please fill in Username box");
        chkForm.name.focus();
        return false;
    }
     return true;
}

谢谢你们:-) Sohail Ahmad