我有一个插件,它通常处理用于 CRUD 操作的 jQuery 对话框的创建。添加到对话框的表单标记在插件代码外部可用,并且插件只要求 http 服务提供标记,并在收到时简单地将其添加到对话框本身。
然后我在插件(onSetupValidation
函数)中创建了一个回调,它是插件用户自定义每个表单验证的句柄。这是我正在使用的代码示例
var element = $('#mydiv');
element.crudplugin({
[...]
onSetupValidation: function(markup) {
var form = $('#myForm', markup);
var container = $('<div class="error"><p>Errors were found validating your form. Please correct them and retry.</p><ol></ol></div>')
.appendTo(form).hide();
var validator = form.validate({
errorContainer: container,
errorLabelContainer: $('ol', container),
errorElement: 'em',
wrapper: 'li',
highlight: function (element) {
$(element).addClass("ui-state-error");
},
unhighlight: function (element) {
$(element).removeClass("ui-state-error");
},
submitHandler: function (form) {
[...]
}
});
}
[...]
});
好。让我们去解决问题
- 如果我在标记中添加验证规则(作为类属性),验证根本不起作用。
validate()
如果我在方法中添加规则,则行为相同 谷歌搜索我发现了很多示例,特别是在 SO 上,它们使用了验证插件
.rules('add', rule)
的方法,如下面的示例,所有这些链接都建议在添加任何规则之前调用该方法,如下面的示例validate
$("#myField", markup).rules("add", { required: true });
但是,如果我在执行指令时使用此方法,则会收到以下错误:
SCRIPT5007:无法获取属性“设置”的值:对象为 null 或未定义 jquery.validate.min.js,第 15 行字符 257
有什么建议吗?