jQuery插件Validate:onfocusin无法工作

3
在这个著名的jQuery插件Validate中,有一个名为'onfocusout'的选项。但是我想使用另一个名为'onfocusin'的选项,它没有被记录在文档中,但存在于代码中,并且插件的作者在回复中引用了它。
我一直在尝试的代码:
    <script type="text/javascript">
   $(document).ready(function() {
    $("form").validate({
     onsubmit: false,
     onkeyup: false, 
     onfocusin: true,
     onfocusout: false,
     rules: {
      nome: {
       required: true,
       minlength: 5
      }
     }
    })
   })
  </script>
 </head>
 <body>
  <form action="tutorial.php" method="post" enctype="text/plain" >
   <input type="text" name="nome" id="nome" />
   <button type="submit">Submit</button>
  </form>
 </body>

当我“focusin”输入时,FireBug显示此错误消息:
validator.settings[eventType].call is not a function [Stop on this error] 
validator.settings[eventType] && v...eventType].call(validator, this[0] ); 
jquery...date.js (line 305)

现在,黄金问题来了:如何解决这个问题?
链接:
验证插件:
bassistance.de/jquery-plugins/jquery-plugin-validation/
验证文档、选项页面:
docs.jquery.com/Plugins/Validation/validate#toptions
验证插件代码:
ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.js
关于onfocusin的验证作者回复:
groups.google.com/group/jquery-en/browse_thread/thread/652418e93c9618f1?pli=1

你想对它做什么?正如你在代码中所看到的,这是一个函数。使用false将覆盖它(禁用效果),否则你需要定义一个你想要执行的函数。 - ifaour
2个回答

7

不要使用onfocusin: true,而应该使用以下代码:

onfocusin: function(element) { $(element).valid(); }

我曾遇到这个错误:
validator.settings[eventType] && ...eventType].call(validator, this[0] );

如果你想使用onfocusout,请使用相同的代码:

onfocusout: function(element) { $(element).valid(); }

希望这能有所帮助。

1

不应该使用“true”(布尔值)作为onsubmit、onkeyup、onfocusin和onfocusout参数的值。默认情况下,这些都是函数(并且事件已经启用)。如果您想关闭这些事件,请将值设为“false”或“undefined”(不要带上“”)。 要了解验证插件,请查看源代码。文档不完整。 v1.9。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接