2011-01-19 53 views
2

我在使用jquery $.post提交表單時遇到了一些麻煩,我使用this驗證插件來驗證表單,但是當我嘗試使用$("#form").validationEngine('validate')檢查表單時,我不斷得到undefined,然後重新加載頁面,這裏是代碼:jQuery表單驗證檢查返回'undefined'

$(document).ready(function() {   

     $("#form").validationEngine(); 

     $("#submit").live('click',function(){ 
      var valid = $("#form").validationEngine('validate'); 
      var vars = $("#form").serialize(); 

      if(valid == true){ 

       //disable submit button 
       $("#submit").attr('disabled','disabled'); 

       $.post('thank_you.php',vars,function(data){ 
        alert(data); 
       }); 

      }else{ 
       $("#form").validationEngine(); 
      } 
     }); 
}); 

的HTML:

<form id="form"> 
    <div> 
     <label for='province'>Select your current province </label> 
     <select id='province' name='province' class='validate[required] text-input'> 
      <option value=''>Select one</option> 
      <option>province1</option> 
      <option>province2</option> 
     </select> 
    </div> 
    <br /> 
    <div> 
     <label for="city">Select your current city</label><br /> 
     <select id="city" name="city" class="validate[required] text-input"> 
      <option value="">Select one</option> 
      <option>city1</option> 
      <option>city2</option> 
     </select> 
    </div> 
    <br /> 
    <div> 
     <label for="name_surname">Name & Surname</label><br /> 
     <input type="text" id="name_surname" name="name_surname" class="validate[required] text-input" /> 
    </div> 
    <br /> 
    <div> 
     <label for="email">Email Address</label><br /> 
     <input type="text" id="email" name="email" class="validate[required,custom[email]] text-input" /> 
    </div> 
    <div> 
     <input type="image" src="images/solar_38.gif" width="82" height="32" alt"submit" id="submit" /> 
    </div> 
</form> 

我已經對插件的網站一看,並沒有發現任何可能秈稻爲什麼我得到這個,當我嘗試驗證表單時,是否有任何代碼可能導致我得到undefined

回答

2

我試着在演示中創建並與您遇到同樣的錯誤。 只有當我包含下面的js時,它纔開始工作。 可能是在你的情況下,它同樣:)

<script src="http://www.position-relative.net/creation/formValidator/js/jquery.validationEngine-en.js"></script> 
<script src="http://www.position-relative.net/creation/formValidator/js/jquery.validationEngine.js"></script> 
1

望着文檔我覺得$("#form").validationEngine();線是錯誤的 - 它應該是

$("#form").validationEngine('attach'); 

從文檔:

實例化的驗證器 通常使用的呼叫 實例以下形式:

$("#form.id").validationEngine(action or options); 

該方法需要一個或多個可選參數 動作(和參數)或 選項的列表來定製引擎的行爲 選項。

又來了一個一瞥:說你有一個 形式是這種

下面的代碼將實例驗證引擎:

<script> 
$(document).ready(function(){ 
    $("#formID").validationEngine('attach'); 

    }); 
</script> 
+0

我已經試過了,仍然沒有運氣。 – Odyss3us 2011-01-19 09:47:04

+0

謝謝!我已經包含了語言文件,但是$(「#formID」)。validationEngine()不起作用。 $(「#formID」)。validationEngine('attr')起作用。我正在使用從GitHub – denysonique 2011-02-25 10:57:22