2009-06-29 55 views
1

我使用$()。post和php來更改<textarea>的內容。jquery.post()和php

腳本成功 - 螢火蟲清楚地顯示textarea標記之間的文字已經改變,而我的小警報觸發。

但是,用戶看不到更改。在Firefox中,更改根本不會發生,並且在IE中,textarea的更新時間延遲了10秒。

以下是我正在使用jQuery:我認爲這是因爲網頁沒有驗證

$(document).ready(function() { 
    $('#pv_list li:first').addClass('hilite'); 
    $("input[name='db_entries']:first").attr('checked', 'checked'); 
    $("input[name='db_entries']").click(function() { 
     $.post("changeEntry.php", {post: $(this).val()}, function(data) { 
      $("textarea").text(data);alert('done'); 
     }); 
     $('#pv_list li').removeClass('hilite'); 
     $(this).parent().addClass('hilite'); 
    }); 
}); 

在第一,但它驗證XHTML過渡。

這真的讓我感到困擾的事情是我讓它工作得更早,無法弄清楚我改變了什麼。

回答

3

您是否嘗試過使用val()來設置textarea的值而不是text()?集

$.post("changeEntry.php",{post: $(this).val()}, 
     function(data) { 
      $("textarea").val(data); 
      alert('done'); 
}); 
+0

井當然。我認爲那只是標籤名稱中實際上有「輸入」的標籤。 工作很好。謝謝:) – andrewheins 2009-06-29 16:48:06

+0

只要想想如何用普通的DOM做 - 它仍然是textarea.value - 不是textarea.nodeValue或textarea.data或其他。 – 2009-06-29 16:56:24

-2

我不知道,但一種可能性是你應該做的:

function(data){ 
    $("textarea").attr("value",data); 
    alert('done'); 
} 
0

那豈不是更容易使用load()功能?

$("input[name='db_entries']").click(function() { 
    $("#outputarea").load("?", {"paramName":this.value}); 
});