1

フォームを検証したいのですが、コード イグナイター ビューにフォーム検証 JavaScript コードがありますが、動作しておらず、検証せずに値を次のページに送信しています。

コード:

<form method="get" action="/calculator/stage_two" name="calculate" id="calculate" onsubmit="return validateForm();">
    <div class="calc_instruction">
        <input type="text" name="property_number" placeholder="No/Name" id = "property_number" class="stage_one_box" />
        <input type="text"  name="postcode" placeholder="Postcode" id = "postcode" class="stage_one_box" />
    </div>
    <input type = "image" name = "submit_calculator" id = "submit_calculator" value="Go" src = "/images/next_button.png" />
</form>

Javascript 関数:

<script type="text/javascript">
    function validateForm() {
        var postcode=document.forms["calculate"]["postcode"].value;
        if (postcode==null || postcode=="") {
            alert("Please enter the postcode to give you more accurate results");
            document.forms["calculate"]["postcode"].focus();
            return false;
        }
</script>
4

7 に答える 7

5

エンド ブラケットがありません。検証コードにエラーがあると、false 以外の値が返され、送信が許可されます。

フォーム アクセスを使用した正規の方法を次に示します。

<form method="get" action="/calculator/stage_two" name="calculate" 
  id="calculate"  onsubmit="return validateForm(this);">
  <div class="calc_instruction">
    <input type="text" name="property_number" placeholder="No/Name" id = "property_number" class="stage_one_box" />
    <input type="text"  name="postcode" placeholder="Postcode" 
      id = "postcode" class="stage_one_box" />
  </div>

    <input type = "image" name = "submit_calculator" id="submit_calculator" src="/images/next_button.png" />
</form>


<script type="text/javascript">
function validateForm(theForm) {
  var postcode=theForm.postcode;

  if (postcode.value=="")  { // cannot be null or undefined if value="" on field
    alert("Please enter the postcode to give you more accurate results");
    postcode.focus();
    return false;
  }
  return true; // allow submit
}
</script>
于 2012-12-19T09:34:43.837 に答える
4

関数の最後にある閉じ中かっこ「 } 」がないようです。

<script type="text/javascript">
function validateForm() {

    var postcode=document.forms["calculate"]["postcode"].value;
    if (postcode==null || postcode=="")
    {
        alert("Please enter the postcode to give you more accurate results");
        document.forms["calculate"]["postcode"].focus();
         return false;
    }
} // <-- here 
</script>
于 2012-12-19T09:32:15.580 に答える
2

関数のエンドブレースを追加してください

<script type="text/javascript">
function validateForm()
 {
  var postcode=document.forms["calculate"]["postcode"].value;
  if (postcode==null || postcode=="")
  {
   alert("Please enter the postcode to give you more accurate results");
   document.forms["calculate"]["postcode"].focus();
    return false;
  }
 }
 </script>
于 2012-12-19T09:33:15.020 に答える
1

ここにデバッガーを挿入してみて、go throw メソッドを試してください

<script type="text/javascript">
 function validateForm() {
     debugger;
     var postcode=document.forms["calculate"]["postcode"].value;
     if (postcode==null || postcode=="")
     {
       alert("Please enter the postcode to give you more accurate results");
       document.forms["calculate"]["postcode"].focus();
       return false;
     }

于 2012-12-19T09:30:41.910 に答える
1

あなたのJavaScript関数に右中括弧がありません

これを使用してください

あなたのjavascriptに右中括弧がありません

<script type="text/javascript">
 function validateForm()
 {

   var postcode=document.forms["calculate"]["postcode"].value;
   if (postcode==null || postcode=="")
    {
    alert("Please enter the postcode to give you more accurate results");
    document.forms["calculate"]["postcode"].focus();
     return false;
    }
}
   </script>
于 2012-12-19T09:32:30.337 に答える
1

単純にこの行を試してください

var postcode=document.getElementById("postcode").value;

それ以外の

var postcode=document.forms["calculate"]["postcode"].value;

postcode==undefined

それ以外の

postcode==null

そして、function validateForm() {あなたは締めくくりを逃しています}

于 2012-12-19T09:32:56.907 に答える
0

投稿したコードでは、validateForm() 関数の右中括弧が欠落しているため、それが実際のコードであると仮定すると、送信時に JavaScript エラーが発生し、ブラウザーがフォームを投稿するだけになります。

于 2012-12-19T09:32:46.983 に答える