IE8中的表单验证问题

时间:2013-02-17 09:12:21

标签: javascript validation

您好我已经在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中运行,它显示警报消息但表单仍在提交,因此我在数据库中获取空值。

2 个答案:

答案 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;

}
相关问题