我使用jQuery Validation Plugin,我的表单可以按以下方式进行验证(假设我有2个字段A和B):

有用:
我单击A并键入一些内容,然后删除。然后单击B。在这种情况下,将显示验证消息。

这没用:
我**单击A,不输入任何内容。然后,我单击了B。在那种情况下,与字段A相关的相关验证消息未显示。但我希望它显示如上。

我尝试在validate方法中使用onsubmit,onkeyup和onclick参数,但没有任何意义。我该如何提供?


剃刀:

jQuery(function () {
    $.validator.setDefaults(
    $("#myform").validate({
        //onsubmit: false, ???
        //onkeyup: true, ???
        //onclick:true, ???
        onkeyup: function(element){this.element(element);},
        rules: {
            'Applicant.Name': "required",
            'Applicant.Surname': "required"
        },
        messages: {
            'Applicant.Name': "Please enter your Name",
            'Applicant.Surname': "Please enter your Surname"
        }
    })
);

});

最佳答案

您的代码:

jQuery(function () {
    $.validator.setDefaults(
        $("#myform").validate({ .... })
    );
});


重要说明:您不能将.validate()方法放在.setDefaults()内。这个不成立。


.validate()方法用于初始化表单上的插件(带有选项)。
.validator.setDefaults()方法用于设置将应用于页面上所有表单的选项,但是,该方法不会初始化任何内容。


如果要为#myform设置选项,请仅使用.validate() ...

jQuery(function () {
    $("#myform").validate({
        // options only for #myform
    });
});


如果要设置页面上所有表单上使用的选项,请使用.validator.setDefaults()。然后在每种形式上使用.validate()

jQuery(function () {

    $.validator.setDefaults({
        // options for all forms on page
    });

    $("#myform").validate({
        // options only for #myform
    });

    $("#myform2").validate({
        // options only for #myform2
    });

});




默认插件操作:

默认情况下,在最初由另一个事件验证该字段之后,该插件才执行任何“键入”验证。

因此,这里是默认onkeyup回调函数的正确修改版本,因此它将提供立即的onkeyup验证。

演示:http://jsfiddle.net/QfKk7/

onkeyup: function (element, event) {
    if (event.which === 9 && this.elementValue(element) === "") {
        return;
    } else {
        this.element(element);
    }
}




您的代码:

//onsubmit: false, ???
//onkeyup: true, ???
//onclick:true, ???


这些选项绝不能设置为true

说明文件:


  onfocusout类型:布尔值或Function()
  验证模糊时的元素(复选框/单选按钮除外)。如果未输入任何内容,则将跳过所有规则,除非该字段为
  已被标记为无效。设置为功能自行决定
  何时运行验证。布尔值true不是有效值。





  onkeyup类型:布尔值或Function()
  验证keyup上的元素。只要该字段未标记为无效,就不会发生任何事情。否则,将对每个键检查所有规则
  事件。设置为false以禁用。设置为要决定的功能
  自己何时运行验证。布尔值true无效
  值。





  onclick类型:布尔值或Function()
  单击时验证复选框和单选按钮。只要该字段未标记为无效,就不会发生任何事情。否则,将对每个键检查所有规则
  事件。设置为false以禁用。设置为要决定的功能
  自己何时运行验证。布尔值true无效
  值。





  onsubmit类型:布尔值或Function()
  在提交时验证表格。只要该字段未标记为无效,就不会发生任何事情。否则,将对每个键检查所有规则
  事件。设置为false以禁用。设置为要决定的功能
  自己何时运行验证。布尔值true无效
  值。

关于javascript - jQuery验证插件无法在Keyup上进行验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20530018/

10-12 12:56
查看更多