2013-04-03 97 views
2

我試圖使用jQuery實現表單驗證,但到目前爲止我無法讓它工作。我一直在閱讀其他幾個問題,但在我的路上沒有人能幫助我。 我正在使用jquery驗證插件http://bassistance.de/jquery-plugins/jquery-plugin-validation/ 我的理解基本思想是給你的表單一個ID,並添加class =「required」到特定的輸入字段,但到目前爲止沒有任何事情發生,並且它愉快地發佈我的形成。另一個jquery表單驗證問題

我的腳本是:

<script> 
      $(document).ready(function(){ 
       $("#validate").validate(); 
       }); 
</script> 

形式看起來是這樣的:

<form action="" id="validate" method="post"> 
    <?do 
    { 
    ++$i; ?> 
    <button type="button" class="togbut" href="#<?echo $i;?>">Lijst voor <?echo $_SESSION['leerlingen'][$i];?> invullen</button> <br> 
    <div id="<?echo $i;?>" style="display:none"> <? 
    echo $_SESSION['leerlingen'][$i]; ?> 




      <fieldset> 
        <input type='hidden' name='ingevuld' id='ingevuld' value='1'/> 
        <legend>A. Leerprestaties:</legend> 
           <label>de prestaties blijven achter bij de capaciteiten</label> 
           <div><input type="radio" class="required" name="pr_ach_lp13<?echo ++$counter;?>" value="1"></div> 
           <div><input type="radio" class="required" name="pr_ach_lp13<?echo $counter;?>" value="2"></div> 
           <div><input type="radio" class="required" name="pr_ach_lp13<?echo $counter;?>" value="3"></div> 
           <div><input type="radio" class="required" name="pr_ach_lp13<?echo $counter;?>" value="4"></div> 
           <div><input type="radio" class="required" name="pr_ach_lp13<?echo $counter;?>" value="5"></div> 
     </fieldset> 
    </div> 

<? 
    } while($i<$_SESSION['num_rows']);?> 
     <input id="submit" type="submit" value="opslaan"> 
</form> 

可能有人請告訴我,我做錯了什麼?

+0

您的提交按鈕不在小時內。你確定你提交表格嗎? – Daniel

+0

不好意思,那是一個小姐型,它實際上是在表格裏面。我已經在問題 – Jeroen

+0

中更正了它如何調用:'$(document).ready(function(){(「#validate」)。validate(); });' – Dmonix

回答

0

問題的一部分似乎是您以無效的方式編寫了JavaScript。

 $(document).ready(function(){ 
     $("#validate").validate();//The instantion of form validator ends here 
      onsubmit: true, 
      onkeyup: false, 
      onfocusout: false, 
      onclick: false 
      //The options above appear as though they should be part of an object 
      //However they are free-floating and not contained in curly braces 
      //Nor are they submitted to validate() as a parameter; since they are 
      //technically outside the call to validate() 
      }); 

Dmonix建議您嘗試調用驗證沒有額外的東西。就像這樣:

 $(document).ready(function(){ 
     $("#validate").validate(); 
     }); 

,看看是否能工作

+0

此外;如果您發佈的腳本是逐字記錄的,那麼您需要將type =「text/javascript」作爲屬性添加到文本標記中,以便正確執行。如下所示: Dogoferis

+0

評論你會發現我已經改變了這一點。但是現在我也在原始問題中更新了它。對困惑感到抱歉。 腳本類型應該不再需要html5,但我已經改變了它,但沒有什麼區別。 – Jeroen

+0

默認驗證似乎只是檢查設置了一個值;也許因爲你正在驗證的單選按鈕都有自動傳遞的值。你是否想驗證至少有一個單選按鈕被選中? – Dogoferis

0

感謝您的建議,我已經找到了問題。由於我沒有收到任何錯誤消息,我認爲它應該在javascript源代碼的調用中。我發現我錯過了腳本源代碼的結束標記,所以它沒有找到插件。對不起浪費你的時間,謝謝你的建議!

+2

使用firebug來調試JS錯誤。調用未定義的函數時,您會在控制檯中看到錯誤。 – Dmonix