您好我已经在javascript中创建了一个方法来验证表单中的所有输入元素
这是我的表格
<form name="frmRegister" action="" method="post" onsubmit="return validate(this);">
<ul>
<li>
<input type="text" validate="true" regex="" displayname="card number 1" name="inpt1" >
</li>
<li>
<input type="text" validate="true" regex="" displayname="card number 2" name="inpt5" >
</li>
<li>
<input type="text" validate="true" regex="" displayname="card number 3" name="inpt2" >
</li>
<li>
<input type="text" validate="true" regex="" displayname="card number 4" name="inpt3" >
</li>
<li>
<input type="text" validate="true" regex="" displayname="card number 5" name="inpt4" >
</li>
</ul>
<input type="submit" name="SubmitButton" value="SEND" />
</form>
这是我的方法
<script type="text/javascript">
function validate(form_name)
{
for (var i = 0; i < form_name.elements.length; i++)
{
var elem = form_name.elements[i];
var displayname = elem.getAttribute("displayname")
var element_names="";
if (elem.getAttribute("validate") == "true")
{
if(elem.value=="")
{
alert(displayname+" connot be null.");
elem.focus();
return false;
}
}
}
return true;
}
</script>
问题是它无法在IE8中运行,它显示警报消息但表单仍在提交,因此我在数据库中获取空值。
答案 0 :(得分:1)
试试这个:
<form name="frmRegister" action="" method="post" onsubmit="event.returnValue = validate(this);">
此外,您的代码中缺少;
。
var elem = form_name.elements[i];
var displayname = elem.getAttribute("displayname") //Here you miss ;
让我知道它是否适合你。
编辑(在 Firefox , Opera , IE 和 Chrome 中检查):
<form name="frmRegister" action="" method="post" onsubmit=" if (event.preventDefault) return validate(this) ; else event.returnValue = validate(this) ; ">
答案 1 :(得分:0)
尝试替换下面的代码。
if(elem.value=="" || elem.value == null)
{
alert(displayname+" connot be null.");
elem.focus();
return false;
}