你不能放置.ajax()
代替.validate()
就像你在这里所做的那样...
$('form').validate({
$.ajax({ ... }); // <-- remove this
...
});
仅指定规则、选项和回调函数jQuery 验证插件文档 http://jqueryvalidation.org/validate可以进去.validate()
.
我看到你已经包含了相同的内容.ajax()
里面的代码submitHandler
回调函数。这是完全正确的,所以只需删除.ajax()
如上所述。
$('form').validate({
// rules, options & callback functions
...
submitHandler: function(form) {
$.ajax({ ... }); // <-- ajax always belongs here
return false;
}
});
至于你原来的问题,yes,您可以使用变量来代替消息。
$(document).ready(function() {
var message_1 = "my custom message 1";
$('#myform').validate({
rules: {
field1: {
required: true
}
},
messages: {
field1: {
required: message_1
}
}
});
});
DEMO: http://jsfiddle.net/PWdke/ http://jsfiddle.net/PWdke/
要动态更改消息(插件初始化后)需要the .rules('add') method http://jqueryvalidation.org/rules.
$(document).ready(function() {
var message_1 = "my custom message 1",
message_3 = "my custom message 3";
$('#myform').validate({
rules: {
field1: {
required: true
}
},
messages: {
field1: {
required: message_1
}
}
});
// programatically over-ride initialized rules/messages below
$('input[name="field1"]').rules('add', {
required: true,
messages: {
required: message_3
}
});
});
DEMO: http://jsfiddle.net/PWdke/1/ http://jsfiddle.net/PWdke/1/