按下退格键或删除键时未调用jquery验证器方法

时间:2014-02-03 19:07:51

标签: jquery jquery-validate

请帮忙......

我很难找到为什么在按下删除或退格键时不会触发我的jquery valitdator方法。以下是我的代码,请提供宝贵的建议来解决这个问题。

    jQuery.validator.addMethod("checkBlankContactNos", function (value, element) {

    ...............

    // some business logic to validate if the textbox is null or not null..

    ...........
    ...........

    }, "Required. Please enter a number");

并添加了一个类规则..

    jQuery.validator.addClassRules({
            planningFieldContactNo:{
               required: false,
               digits: false,
               contactNoRegex: true,
               checkDuplicateContactNos: true,
               checkBlankContactNos: true
            }

    });

下面我在提交表单之前验证 -

$("#customer").validate({
    ignore: [],
    rules: {  
        name: { 
            required: true,
            customerNameRegex: true,
            remote: {
                url: "${checkCustomerNameUrl}",
                    type:"get",
                data: {
                  custid: function() {
                    return $("#customerId").val();
                  }
                }  
              }
        }
    }, 
    messages: {
        name:
            {
                required:  "Please specify a customer name",
                customerNameRegex: "Invalid characters. Allowed characters include a-z A-Z 0-9 and [] () & space . _ -",
                remote: "Customer name already exists"
            }
    },
    submitHandler: function() {

    },
    success: function(label) {
    },
    invalidHandler: function(e,validator) {

    },
    onkeyup: false,
    //onfocusout: true,
    //onclick: false,
    onsubmit: false
}); 

请建议..

谢谢,Sirish。

2 个答案:

答案 0 :(得分:1)

这是我修复它的方式..我已经改变了

 onkeyup:true,

 onkeyup: function(element) {$(element).valid()},

这就解决了我的问题。

非常感谢, Sirish。

答案 1 :(得分:0)

引用标题: “按下退格或删除时未调用jQuery Validator方法”

那是因为你已经用这个禁用了关键事件......

onkeyup: false,

默认行为为onkeyup,因此您只需完全删除该行

As per documentation

  

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

     

布尔值true不是有效值。

换句话说......

  • 如果要在每次击键时进行验证,则省略onkeyup选项。 (默认)
  • 如果您想在每次击键时停用验证,请将onkeyup设为false
  • 如果您需要在每次击键时运行自定义回调函数,请将onkeyup设置为您的覆盖功能。