1

嗨,我在 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 中不起作用,它显示警报消息但表单仍在提交,所以我在我的数据库中得到空值。

4

2 回答 2

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 ;

让我知道它是否对您有用。

编辑(在FirefoxOperaIEChrome中检查):

<form name="frmRegister" action="" method="post" onsubmit=" if (event.preventDefault) return validate(this) ; else  event.returnValue = validate(this) ; ">
于 2013-02-17T09:27:19.080 回答
0

尝试替换下面的部分代码。

if(elem.value=="" || elem.value == null)
{
  alert(displayname+" connot be null.");
  elem.focus();
  return false;

}
于 2013-02-17T10:36:52.153 回答