Jquery验证插件规则方法不起作用

时间:2013-10-30 13:32:00

标签: javascript jquery jquery-validate

我有一个 asp.net 表单,我正在尝试使用Jquery Validation插件。我正在尝试使用rules方法使用javascript添加规则。所以我试过这样的事情

$('#btnSave').on('click', function () {
    $("#txtAmount").rules("add", {
        required: true,
        minlength: 2,
        messages: {
            required: "Required input",
            minlength: jQuery.format("Please, at least {0} characters are necessary")
        }
    });
    $('form').validate({
        submitHandler: function (form) {
            form.submit();
        }
    });
});

我已设置ClientIDMode="Static",以便我可以直接使用控制ID。但是,这不起作用。谁能告诉我问题出在哪里?我似乎无法将手指放在上面。

这是 JsFiddle

2 个答案:

答案 0 :(得分:8)

是的,如接受的答案中所述,您必须在调用.validate()方法之前调用.rules()(初始化)。

<强>然而

1)由于.validate()只是初始化方法(只被称为一次),因此无需将其包装在click处理程序中。该插件已经自动捕获点击事件。

2)在此示例中,不需要内部仅包含submitHandler的{​​{1}},因为这已经是form.submit()的默认行为。完全离开submitHandler将产生相同的结果。虽然,如果您需要在提交时使用ajax或执行其他一些代码,那么请务必使用submitHandler

submitHandler

DEMO:http://jsfiddle.net/85KR4/5/ (成功提交后会定期发布表单)

DEMO 2:http://jsfiddle.net/85KR4/7/ (ajax呼吁成功提交)

答案 1 :(得分:3)

除订单外,一切都是正确的。 首先,您应该致电validate,之后您可以致电rules

http://jsfiddle.net/85KR4/3/