Php 验证插件-消息的ajax调用
我使用的是1.9.0 jquery版本,这个验证插件: 我想从PHP文件下载JSON格式的消息,如下所示:Php 验证插件-消息的ajax调用,php,jquery,jquery-validate,Php,Jquery,Jquery Validate,我使用的是1.9.0 jquery版本,这个验证插件: 我想从PHP文件下载JSON格式的消息,如下所示: messages: { remote: function() { return $.ajax({ url: 'http://localhost/My/index.php/form/validate/messages', type: "POST",
messages: {
remote: function() {
return $.ajax({
url: 'http://localhost/My/index.php/form/validate/messages',
type: "POST",
}).done(function(messages) {
return messages;
}
);
}
}
$.ajax({
url: 'http://localhost/My/index.php/form/validate/messages',
type: 'POST',
dataType: 'json',
success: function (results) {
//your data here in results
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert("error");
}
});
jQuery.extend(jQuery.validator.messages, {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
minlength: jQuery.validator.format("Please enter at least {0} characters."),
rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
range: jQuery.validator.format("Please enter a value between {0} and {1}."),
max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});
但是,它根本不工作,不显示消息,不进行ajax调用,什么都没有。你能帮我做这个吗?试试这个:
messages: {
remote: function() {
return $.ajax({
url: 'http://localhost/My/index.php/form/validate/messages',
type: "POST",
}).done(function(messages) {
return messages;
}
);
}
}
$.ajax({
url: 'http://localhost/My/index.php/form/validate/messages',
type: 'POST',
dataType: 'json',
success: function (results) {
//your data here in results
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert("error");
}
});
jQuery.extend(jQuery.validator.messages, {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
minlength: jQuery.validator.format("Please enter at least {0} characters."),
rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
range: jQuery.validator.format("Please enter a value between {0} and {1}."),
max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});
当显示“错误”时,服务器端出现错误。你需要调试它。您可以使用Firebug网络控制台在浏览器中检查结果或网络控制台。使用
远程
规则时,请参阅文档以获取示例:
remote
规则用于将特定字段的内容与数据库进行比较。。。例如检查名称或密码是否已经存在。它不能用来简单地将错误消息列表转储回插件。就插件而言,您只需为一条规则设置一条错误消息。见:
我真的不明白你想做什么的目的。通常,每个规则的错误消息只设置一次,不会更改
要动态更改特定字段上的消息,可以使用。你甚至不必触碰规则就能超越信息
$("#myinput").rules("add", {
messages: {
required: "Required input",
minlength: jQuery.format("Please, at least {0} characters are necessary")
}
});
或者,您可以覆盖以下任何或所有消息:
messages: {
remote: function() {
return $.ajax({
url: 'http://localhost/My/index.php/form/validate/messages',
type: "POST",
}).done(function(messages) {
return messages;
}
);
}
}
$.ajax({
url: 'http://localhost/My/index.php/form/validate/messages',
type: 'POST',
dataType: 'json',
success: function (results) {
//your data here in results
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert("error");
}
});
jQuery.extend(jQuery.validator.messages, {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
minlength: jQuery.validator.format("Please enter at least {0} characters."),
rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
range: jQuery.validator.format("Please enter a value between {0} and {1}."),
max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});
您应该发布您的relavent PHP代码,因为这将有助于为您提供答案–还添加了PHP标记。还将失败的方法添加到ajax请求中,如so.fail(函数(jqXHR,textStatus,errorhorn){console.info(errorhorn);}在完成调用后,使用chrome控制台查看输出将使您更好地了解类似于@Norbert PiszAlso的错误,因为您使用的是1.9版本,您是否也在运行jquery迁移插件,因为这可能是abel来帮助您,如果验证插件尚未更新到最新版本的jquery,则它将被删除可能是插头本身,只是一个想法