这是我用来验证表单名称字段的函数。此代码在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"> </td>
<td width="138"> </td>
<td width="215"> </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"> </td>
<td width="138">
<input type="submit" value="SAVE" name="B1" class="button_s1"></td>
<td width="215"> </td>
</tr>
</table>
答案 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