2011-01-19 57 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