2014-03-25 26 views
0

此代碼有什麼問題。它適用於以前版本的Jquery,但在版本1.11.0中停止工作。該腳本檢查用戶名可用性並在div #status中打印結果。Jquery腳本在版本1.11.0中停止工作

該腳本只能部分工作。它向check-username.php發送請求,並顯示loading.gif和文本「請稍等」,但不會打印check-username.php文件中的結果。它永遠在「請稍等」。

Javascript控制檯不顯示任何錯誤消息。

<script type="text/javascript"> 
pic1 = new Image(16, 11); 
pic1.src = "/loading.gif"; 
$(document).ready(function() { 
    $("#nn").change(function() { 
     var usr = $("#nn").val(); 
     var paro = $("#par").val(); 

     $("#status").html('<img src="/loading.gif" align="absmiddle">Please wait'); 
     $.ajax({ 
      cache: false, 
      type: "POST", 
      url: "/check-username.php", 
      data: "nn=" + usr + "&prr=" + paro, 
      success: function (msg) { 
       $("#status").ajaxComplete(function (event, request, settings) { 
        $("#nn").removeClass('object_ok'); 
        $("#nn").addClass("object_error"); 
        $(this).html(msg); 
       }); 
      } 
     }); 
    }); 
}); 
</script> 
+0

是否有absmiddle對齊? –

+0

'請稍候'無效的html。圖片標籤應該關閉'' –

+0

有沒有可能打開控制檯並檢查是否有錯誤? –

回答

0

它必須是ajaxComplete由您的成功回調函數註冊時觸發。

這就是你想要的,對吧? (抱歉,我還沒有真正運行它)

<script type="text/javascript"> 
pic1 = new Image(16, 11); 
pic1.src = "/loading.gif"; 
$(document).ready(function() { 
    $("#nn").change(function() { 
     var usr = $("#nn").val(); 
     var paro = $("#par").val(); 

     $("#status").html('<img src="/loading.gif" align="absmiddle">Please wait'); 
     $.ajax({ 
      cache: false, 
      type: "POST", 
      url: "/check-username.php", 
      data: "nn=" + usr + "&prr=" + paro, 
      error: function (err) { 
       $("#nn").removeClass('object_ok'); 
       $("#nn").addClass("object_error"); 
       $("#status").html('an error occurred'); 
      }, 
      success: function (msg) { 
       $("#nn").addClass('object_ok'); 
       $("#nn").removeClass("object_error"); 
       $("#status").html(msg); 
      } 
     }); 
    }); 
}); 
</script> 

作爲一個側面說明,根據http://www.w3schools.com/tags/tag_img.asp img標籤:

在HTML標記沒有結束標記。

在XHTML中,標籤必須正確關閉。