我试图验证我的表单,并且我已经验证了数组正被发送回函数但是if语句不起作用。我再次查看了发回的响应并将其设置为
if if语句if(test!=" false")
json回应
{"error":"true","id":62}
default.js
$(".create").click(function (event) {
event.preventDefault();
$("#create-page").dialog({
buttons: {
"Create": function () {
var ed = tinyMCE.get('c_page_content');
var page_headline = $("#page_headline").val();
var page_title = $("#page_title").val();
var description = $("#description").val();
var keywords = $("#keywords").val();
var page_content = ed.getContent();
var id = $("#id").val();
var addItem = $('div[id="contentBox"]:last');
$.post("submit", {
page_headline: page_headline,
page_title: page_title,
description: description,
keywords: keywords,
id: id,
page_content: page_content
}, function (result) {
var test = result.error;
if (test != "false") {
addItem.append('<div class="contentBox ui-widget-content"><div class="cHeader">' + page_title + '</div><div class="cOption"><a href="create" class="edit" id="edit" rel="' + result.id + '">Edit</a></div><div class="cOption"><a href="json_del" class="delete" id="delete" rel="' + result.id + '">Delete</a></div></div>');
$(this).dialog("close");
alert("Page created successfully!");
} else {
$("#title_error").val(result.page_title);
$("#content_error").val(result.page_content);
if(result.page_title !== "")
{
$( 'p[id=title_error]' ).show();
}
if(result.page_content !== "")
{
$( 'p[id=title_error]' ).show();
}
}
});
},
Cancel: function () {
$(this).dialog("close");
}
}
});
$("#create-page").dialog("open");
});
答案 0 :(得分:2)
您的结果可能仍然是JSON字符串而不是对象。
尝试将结果输出到控制台,看看你得到了什么:
function (result) {
console.log(result);
...
如果输出字符串,则表示需要将其转换为JavaScript对象。这可以通过以下方式完成:
var resultObject = $.parseJSON(result);
或者你可以通过传递一个&#34; json&#34;来告诉jQuery自动将它转换为一个对象。发布函数的数据类型(请参阅http://api.jquery.com/jquery.post/处的 dataType 参数)。
答案 1 :(得分:1)
答案 2 :(得分:0)
在使用之前将json
字符串解析为object
:
var test = $.parseJSON(result);
if(test.error != "false") {
//...
}
您也可以使用:
$.post( "...", { ... }, function(result) {
if(result.error != "false")
}, "json");
答案 3 :(得分:0)
您需要向dataType
提供$.post
参数,告诉它自动解码JSON:
$.post("submit", {
<parameters>
}, function(result) {
...
}, "json");
另一种方法是让服务器脚本发送Content-Type: application/json
标题。