jquery 模糊验证插件

jquery validation plugin on blur

朋友们,我是 javascripting 的新手,jQuery 需要您的帮助来解决 2 个问题。我正在使用 jquery 验证插件 https://jqueryvalidation.org 用于在不同页面上包含多个表单的项目。

问题 #1

我包含了一个自定义 JS 文件,该文件已经包含

$(document).ready(function() {
  //some codes
});

要在不同的页面上使用不同的属性执行此插件,需要在 document.ready 中对其进行初始化,即

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

所以这样准备文件2次可以吗?

问题 #2

此插件在点击提交按钮后工作。我希望它还可以验证输入字段的 onblur。它确实有 属性 在 onfocusout 上进行验证,但它也可以在单击提交按钮后处理错误。 那么,在单击提交按钮之前,是否可以使验证也适用于 blur 或 focusout

我们将不胜感激任何帮助。先谢谢各位朋友了

是的,是的。您的页面上可以有任何 $(document).ready();。在 DOM.

中呈现元素之前定义方法和函数时需要它

如果您将 javascript 放在页面的最底部(在 html 元素呈现后),您可以保留它。

比如本例需要:

<script>
   //before create the element
   $(function() { //same as document ready
       $('#element').on('click', function () {
          alert('Hi');
       });
   });
</script>

<div id="element">some text</div>

但在这种情况下不是:

<div id="element"></div>
<script>
   //Your element has already rendered
   $('#element').on('click', function () {
      alert('Hi');
   });
</script>

并且您可以在模糊上使用您的验证。

$('#myInput').on('blur', function() {
   $("#theForm").validate();
});

这些是基础,当你用javascript操纵DOM时,那就是另一回事了。

使用这个来验证模糊:

$(document).ready(function() {
    var $theForm = $("#theForm"),
        $form = $theForm.validate();
    //changed to check every textbox type input inside #theForm:
    $theForm.on("blur", "input[type='text']", function(e){
        //use element() to test only one element:
        if ($form.element(this)) {
            console.log("is valid");
        }
    });

});

Validator.form()

Description: Validates the form, returns true if it is valid, false otherwise.


Validator.element( element )

Description: Validates a single element, returns true if it is valid, false otherwise.

更多信息:

https://jqueryvalidation.org/Validator.form/

https://jqueryvalidation.org/Validator.element/

工作示例:

https://codepen.io/anon/pen/wPOrrx