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

标签 javascript jquery ajax

在我的网页中,我使用 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');                
            }            
        },
    });
}

控制台日志数据

enter image description here

更新:

alert(data) 显示的是这样的:

enter image description here

最佳答案

在 php 文本/html 输出中出现额外空格的情况并不罕见

这是使用 json 和检查对象属性更容易的原因之一,尤其是像您一样比较复杂的字符串。

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

尝试

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

关于javascript - 为什么 jQuery 返回数据没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38035552/

相关文章:

jquery - Mailchimp 使用 jQuery AJAX 订阅?

javascript - 如何使用 Javascript 创建和下载 csv 文件?

javascript - 直接在 HTML 标签中使用 Vue-JS 自定义辅助函数

javascript - 回调函数要求和资源

javascript - 有没有一种好方法可以根据大小使 onclick =""有条件?

javascript - 如何使用jquery将图像编码为base64?

javascript - 无法调用未定义的 GetJson 的方法 'toLowerCase'

javascript - 输入重复记录时不插入数据库

jquery - 当字段处于焦点时,Mousetrap.bind 不起作用?

python - 为什么我的 ajax 代码不能使用 Python Flask 运行?