2012-01-24 59 views
2

我已经在使用jQuery 1.7.1的页面上设置了jQuery验证,如下所示。jQuery验证1.9.0和jQuery 1.7.1

<html> 
<head> 
    <script src="jquery-1.7.1.js" type="text/javascript"></script> 
    <script src="jquery.validate-1.9.0.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#form1").validate(); 
     }); 
    </script> 
</head> 
<body> 
    <form id="form1"> 
     <div> 
      <p> 
       <input id="form1input1" name="11" class="required" /> 
      </p> 
      <p> 
       <input id="form1input2" name="12" class="required email" /> 
      </p> 

      <input type="submit" value="Validate form 1"> 
     </div> 
    </form> 
</body> 
</html> 

这些字段在提交表单时进行验证,但不在blur/keyup上进行验证。

如果我将jQuery 1.7.1替换为jQuery 1.3.2,那么插件将按照模糊/键盘上的验证记录工作。

这是兼容性问题吗?我找不到在GitHub的问题跟踪https://github.com/jzaefferer/jquery-validation

+0

你确定你没有在任何地方设置onfocusout:false(包括默认选项)? – alex

+0

100% - 代码如上。在我的故障排除过程中,我尝试了'onfocusout:true'等。没有帮助 – Darbio

回答

6

任何错误/开放门票有了这种结合,你必须指定inputtype属性:

<form id="form1"> 
    <div> 
     <p> 
      <input id="form1input1" name="11" class="required" type="text" /> 
     </p> 
     <p> 
      <input id="form1input2" name="12" class="required email" type="text" /> 
     </p> 

     <input type="submit" value="Validate form 1"> 
    </div> 
</form> 

例子:http://jsfiddle.net/5au9m/

插件作者(JörnZaefferer)认为这实际上是由于jQuery中发生的变化引起的:

只要您的输入具有类型属性,Afaik就可以正常工作。虽然没有type属性的输入默认为文本,但jQuery并不这么认为,并且忽略它们。这是演示中的问题,请参阅5f4a3a5和9050de7。

让我知道这是否也是你所看到的问题。

来源:Issue filed on github

+0

谢谢 - 这解决了问题,现在正在工作。 – Darbio