我有一个带有SELECT字段(college_id)的表单,我正在尝试验证。 我正在使用JQuery Validate插件并试图使用它"远程"选项。
HTML:
<form id="registration-form" ... >
.
.
<select name="college_id" id="college_id" class="required" >
//Options generated using PHP code
</select>
.
.
</form>
JAVASCRIPT:
$(document).ready(function(){
//For triggering the validation onChange
$('#college_id').change(function(){
$("#college_id").removeData("previousValue");
$("#registration-form").validate().element("#college_id");
});
$('#registration-form').validate({
rules:{
college_id:{
remote: {
type: 'POST',
url: urls.base_url+'Representative/checkCollegeAJAX/',
dataType:"json",
data:{
college_id:function(){
return $('#college_id').val();
}
},
dataFilter: function(data) {
data=JSON.parse(data);
console.log(data.isError);
if(!data.isError) { //If no error
return true;
} else {
console.log("Error Message: "+data.errorMessage);
return "\"" + data.errorMessage + "\"";
}
}
}
}
}
});
});
如上所示,当isError == True
时,我试图显示错误消息我的PHP代码返回一个JSON编码对象,如:
{"isError":true,"errorMessage":"Sorry!"}
如果出现错误 OR
{"isError":false,"errorMessage":""}
如果没有错误。 (从Fire Bug中提取)
问题在于,无论回应是什么,我都会继续&#34;修复此字段&#34;在SELECT字段旁边。 只有在出现错误的情况下,我才需要显示自定义消息(data.errorMessage)。
答案 0 :(得分:1)
我刚才遇到了这个问题,解决方案是以JSON的形式返回你想要显示为错误的字符串。
所以,如果一切正常,只需返回true:
echo json_encode(true);
在你的php /无论ajax调用。
相反,如果您必须显示错误,请将字符串放在答案中:
echo json_encode("hey, we got something wrong here..");
如果您需要本地化错误消息而您无法通过控制器执行此操作,只需在调用远程方法时将其传递:
data: {
ajax: true,
id: function() {
return $( "#cid" ).val();
},
errormsg: "ERROR MSG WITH LOCALE"
},
我希望这能帮助别人:)