2010-05-14 149 views
3

有一點噩夢,我試圖用jQuery將一些.load()調用中的文本插入到用戶的表單字段(textfield)中登錄(基本上預填一些已知的細節)。這是#bookName和#bookEmail我有問題在jQuery中使用.load()插入文本到文本區域

的代碼,我現在用的就是:

$.ajax({ 
     type: "POST", 
     url: "/ajax/login.php", 
     data: dataString, 
     success: function(html) { 
      if (html == 1) { 
       $("#loginPanel").load("/ajax/login-panel.php");  
       $("#bookName").load("/ajax/getSessionDetails.php #userUsername"); 
       $("#bookEmail").load("/ajax/getSessionDetails.php #userEmail"); 
       $("#bookingLogin").hide("fast"); 
      } else { 
       $("#loginError").html("Sorry, login failed, please try again"); 
      } 
     } 
    }); 

如果我硬編碼如$("#bookName").html("Test Content");它的工作原理確定,因此必須與.load呼叫的問題。

我環顧四周,發現有些人提出類似下面的代碼,但我無法得到它的工作:

$.get(htmlBannerUrl, function(data){ 
    $('textarea').val(data); 
}); 
+0

是傳遞正確的網址嗎? $(「#bookName」)。load(「/ ajax/getSessionDetails.php #userUsername」); – deostroll 2010-05-14 17:10:56

+0

對不起,我錯過了一些我的問題,我從調用中獲取數據,#loginpanel(一個div)正確顯示,問題在於它沒有將數據放入#bookname和#bookemail,它們都是文本字段:「 2010-05-14 17:11:42

+0

Firebug爲getSessionDetails提供了以下響應: '

bateman_ap
' – 2010-05-14 17:14:03

回答

2

您還可以使用文本();

$('#loginError').text(); 
0

這是可能的,你是射擊同時有太多的Ajax請求:

$("#loginPanel").load("/ajax/login-panel.php");  
$("#bookName").load("/ajax/getSessionDetails.php #userUsername"); 
$("#bookEmail").load("/ajax/getSessionDetails.php #userEmail"); 

的HTTP 1.1規範建議客戶只允許2個源主機同時連接。您可以嘗試在$ .ajax的成功回調中將其減少到一個,以查看它是否按預期工作。另請參閱:

How many concurrent AJAX (XmlHttpRequest) requests are allowed in popular browsers?

+0

The call is獲取數據,所以我不認爲這是問題所在,而是將該數據放入文本字​​段中 – 2010-05-14 17:48:01

0

好吧,我不得不用一種變通方法來做到這一點,不是很好可言,但至少讓我堅持到後臺,直到構建的其餘部分完成。

而不是將它作爲一個值添加它,我不得不在一個新的PHP頁面建立一個整體形式的欺騙,並使用.load插入它。好的一點是,它的工作原理是壞的,如果我想重用代碼,它不是很有用,我將不得不建立另一個頁面。

我應該保持這個問題的開放,因爲我只找到了解決方法,是如何Stackoverflow的作品?