2011-07-16 186 views
0

这是我用来验证表单名称字段的函数。此代码在Chrome和IE中运行良好,但不在FireFox中运行。功能在Chrome和IE中正常工作,但不在FireFox中

当firbug检查它给出了这样的错误:

chkForm is not defined 

在此行中:提前

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

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

由于这是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> 

+1

你在哪里定义和初始化'chkForm'的

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

捆绑以下行之后? – Mat

+0

是的,请提供HTML。 –

回答

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; 
} 
+0

这仍然会引发错误。您需要检查'if(typeof chkForm ===“undefined”)' –

1

这里制作一个假设,因为不能看到所有的代码,通过我假设你依靠的事实,IE和Chrome允许通过一个全局变量访问DOM与标识元素ID。

实际上你需要定义变量,并得到像这样的节点的引用:

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

它正在工作:) – sohail

0

感谢名单给大家。现在此代码工作,我加入我的代码感谢:-) 苏海尔·艾哈迈德

+0

但它没有回到警报后的用户名字段 chkForm.name.focus(); – sohail

相关问题