拥有以下jQuery文件
$( document ).ready(function() {
var urlform = "register/ajax";
$("#btnRegister").click( function() {
$("#Register").submit( function() {
return false;
});
$.ajax({
url: urlform,
type: 'POST',
dataType: 'json',
async: true,
data: $("#Register").serialize(),
success: function (data) {
$("#email").css("border-color", "green");
$("#rCheck").text(data);
console.log(data);
},
error: function (data) {
$("#email").css("border-color", "red");
$("#rCheck").text(data);
console.log(data);
}
});
});
});
在控制台日志中我得到
Object {email_reg: Object, confirm_password_reg: Object}
confirm_password_reg: Object
notSame: "Passwords Doesn't Match"
__proto__: Object
email_reg: Object
recordFound: "E-mail address already exists"
__proto__: Object
__proto__: Object
有关更清晰的解释,有以下链接:
但是当使用 $(“#rCheck”)。文本(数据); 在div中传输数据时,它只获得 [object Object] 。
问题如何仅传输错误消息,如:
Json Encode
if (!$form->isValid()){
// email is invalid; print the reasons
$json= $form->getMessages();
$response->setContent(\Zend\Json\Json::encode($json));
}
return $response;
这里$ json怎么可以在数组中双击。
答案 0 :(得分:0)
问题是data
是一个对象,当传递给.text()
时会打印.toString()
[object Object]
版本。
所以试试
if (data) {
var msgs = $.map(data, function (fieldObj, key) {
return [$.map(fieldObj, function (msg, key) {
return msg;
})]
});
$('#abc').html(msgs.join('<br />'))
} else {
//do something
}