在我的网页中,我使用 jQuery/Ajax 来保存表单数据。使用 php 保存数据后,我显示如下成功消息:
if($sql){
$sql_result[] = "<div class='success'>updated</div>";
}
echo end($sql_result);
在 Ajax 返回数据中,我正在检查消息是否包含更新的条件,然后我将隐藏 html 元素,但它不起作用。
这是我的 jQuery 代码:
function save_email (element, event) {
e = $(element);
event.preventDefault();
var formData = new FormData(e.parents('form')[0]);
$.ajax({
data : formData,
cache : false,
contentType: false,
processData : false,
url : 'save_email.php',
type : 'POST',
xhr : function () {
var myXhr = $.ajaxSettings.xhr();
return myXhr;
},
success : function (data) {
$("#email_success").html(data);
//$("#email_success").show('slow').delay(3000).hide('slow');
if(data == "<div class='success'>updated</div>" ) {
$("#save_email_button").hide('slow');
$(".delete_ex_email_label").hide('slow');
}
},
});
}
控制台日志数据
更新:
alert(data)
显示的是这样的:
最佳答案
在 php 文本/html 输出中出现额外空格的情况并不罕见
这是使用 json 和检查对象属性更容易的原因之一,尤其是像您一样比较复杂的字符串。
然而,在比较字符串结果时使用trim()通常是一个好主意
尝试
$.trim(data) === "<div class='success'>updated</div>")
关于javascript - 为什么 jQuery 返回数据没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38035552/