2013-12-18 48 views
0

文本區域上的文字我有此代碼的作品,但只有當按鈕被點擊的第一次:從jquery的ajax調用不工作

<script> 

$(document).on("click","#btn-regenerate", function() { 

     var something = "blablabla"; 
     $.ajax({ 
      type: "POST", 
      url: base_url_admin + "sitemap/getcategories", 
      data: {"something" : something}, 
      dataType: "json", 
      success: function(msg){ 
       $("#categories").html(msg); 
      }, 
      error: function(jqXHR, textStatus, errorThrown){ 
       alert(textStatus + " " + errorThrown); 
      } 
     }); 
}); 

</script> 

但第一次後它不工作。爲什麼?我想點擊刪除textarea中的以前的內容,並再次將ajax輸出放在那裏(不管我點擊了多少次按鈕)。但它只適用於第一次。然後,當我例如手動刪除textarea中的一些內容並點擊按鈕,沒有任何反應。如何解決這個問題?我究竟做錯了什麼?取而代之的

$("#categories").html(msg); 

+0

的HTML內容還顯示HTML? – BeNdErR

+0

請給我們提供一個http://jsfiddle.net/ – qualle

回答

0

嘗試:

$("#categories").val(msg); 
+0

哇,它的工作原理; D。你能解釋一下爲什麼html()只能使用一次而且val()多次? – user3110329

+0

'.html()'在給定元素中直接設置HTML代碼,所以它適用於空'textarea'。之後'textarea'繼承它作爲一個值,它涵蓋了HTML代碼。此外,如果您手動設置值,則不會修改其HTML代碼(仍然只是值)。 – hsz

0

我覺得#btn-regenerate插入調用阿賈克斯之後,所以你必須綁定調用阿賈克斯後一下就可以了事件

0

首先刪除$(「#categories」)的html內容爲

$("#categories").html(''); 

Ajax調用之前,然後apppend在響應

$("#categories").html(msg);