1
$.post(
    $("#formReg").attr("action"), $("#formReg").serialize(),
    function(data, textStatus, jqXHR) {
            $("#info").html(data);
        alert (data); // to check - ok - `folder` is displaying
        if ($("#info").html() == "folder"){
        $("#imgOk").fadeIn();  //doesn't work
        }
});

似乎#info有另一个内容,而不是folder,虽然由警报检查,并且folder作为内容在屏幕上可见。

4

1 回答 1

1

有时在执行 ajax 请求时,您会在服务器上使用在返回结果中插入空格的代码。看到添加空格的位置并不总是那么容易,但它可能是代码之前或之后的一个空格,例如<?php在 PHP 中之前有一个空格等。

最好的办法是简单地删除服务器端的空格,但 javascript 也有一个修剪方法,可以修剪字符串中的后面和尾随空格:

if ($("#info").html().trim() == "folder"){...}

旧浏览器不支持该功能,因此如果这是一个问题,您可以使用正则表达式,或者由于您已经在使用 jQuery,您可以使用类似的跨浏览器功能,它实际上trim()在较新的浏览器中使用相同的本机方法,并且旧浏览器中的正则表达式,因此您不必担心它:

$.post($("#formReg").attr("action"), $("#formReg").serialize(), function(data) {
    $("#info").html(data);
    if ($.trim(data) == 'folder') $("#imgOk").fadeIn();
});
于 2013-01-13T18:28:47.703 回答