2013-01-13 64 views
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是在屏幕上的內容可見。

+1

你檢查了空白嗎?嘗試'if($(「#info」).html()。trim()==「文件夾」){...' – adeneo

+2

爲什麼不檢查是否(data ==「folder」){.... fade in} –

+0

@adeneo,謝謝。有用。但空間從哪裏來?無論如何,請將您的評論作爲答案,請 – Alegro

回答

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(); 
}); 
+0

真的有用。再次感謝。 – Alegro