2

我有一个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

4

2 回答 2

8

是的,正如接受的答案中所解释的,您必须在调用方法.validate()之前调用 (initialization) .rules()

然而:

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

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

$(document).ready(function() {

    $('form').validate({
        // other rules and options
    });

    $("#id1").rules("add", {
        required: true,
        minlength: 2,
        messages: {
            required: "Required input"
        }
    });

});

DEMO: http: //jsfiddle.net/85KR4/5/(成功提交时调用的常规表单动作)

DEMO 2: http: //jsfiddle.net/85KR4/7/(成功提交时调用ajax)

于 2013-10-30T16:34:58.733 回答
4

一切都是正确的,除了顺序。一开始你应该跟注validate,然后你就可以跟注rules

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

于 2013-10-30T14:01:26.717 回答