2010-05-14 80 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的作品?