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 で動作しないことです。警告メッセージが表示されますが、フォームはまだ送信されているため、データベースで null 値が取得されます。

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 ;

うまくいったかどうか教えてください。

編集 ( FirefoxOperaIEおよびChromeでチェック):

<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 に答える