0

我已经实现了来自 bassistance.de 的 jQuery 验证插件,并通过在我想要验证的每个表单下方手动定义规则来使用它。我想在脚本初始化完成后根据需要修改我定义的字段(例如,给它们一个边框颜色),但我似乎找不到通用的“加载”回调、事件或扩展可能性。

有没有办法在每次$('#form').validate(..)完成初始化时执行脚本?

我现在解决的方法如下:

$(document).ready(function() {
    $('#myForm').validate({
        rules: {
            txtCode: { required: true, maxlength: 12 },
            txtName: { required: true, maxlength: 50 },
        }
    });
    $('#myForm').highlightRequiredFields();
});

..highlightRequiredFields()我写的一个简单的 jQuery 插件在哪里修改所需的文本框。我只是不太热衷于将该行复制到我的所有表单验证中。

4

3 回答 3

1

为什么不简单地使用 CSS 进行更改?我有一堆规则,甚至还有一些 JS 行,它们在任何具有required类的东西上自动运行,一旦它们有效/错误,其他事情(我想要的)就会发生在他们身上。

否则,您很可能必须在$.fn.validate()插件本身内部进行更改。

于 2012-08-31T15:19:24.137 回答
1

我会干扰 validate 插件的 init 方法来执行你的 highlightRequiredFields 插件。

不要忘记检查这个插件是否可用,所以如果在其他地方没有突出显示,验证不会中断。

于 2012-08-31T15:23:51.783 回答
0

谢谢大家。Zachary 的回应让我意识到这比我想象的要容易得多。我最终添加了这个重载:

(function($) {
    $.fn.extend({
        validateAndMarkRequired: function(options) {
            var validator = this.validate(options);
            this.markRequiredFields();
            return validator;
        }
    });
})(jQuery);
于 2012-09-03T08:29:33.253 回答