为什么jQuery返回数据没有按预期工作?

时间:2016-06-26 05:36:51

标签: javascript jquery ajax

在我的网页中,我使用jQuery / Ajax来保存表单数据。使用php保存数据后,我显示成功的消息,如bellow:

if($sql){
    $sql_result[] =  "<div class='success'>updated</div>";
}

echo end($sql_result);   

在Ajax返回数据中我正在检查一个条件,如果消息包含updated,那么我将隐藏一个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');                
            }            
        },
    });
}

控制台日志数据

enter image description here

已更新:

alert(data)显示了这一点:

enter image description here

1 个答案:

答案 0 :(得分:2)

在php text / html输出中输出额外的空格并不罕见

这是使用json和检查对象属性更容易的一个原因,特别是在比较你正在做的复杂字符串时。

然而,在比较字符串结果时使用trim()通常是一个好主意

$.trim(data) === "<div class='success'>updated</div>")