使用jQuery中的.load()将文本插入textarea

时间:2010-05-14 17:03:04

标签: jquery

有点噩梦,我试图在用户登录后使用jQuery将.load()调用中的一些文本插入到表单字段(textfield)中(基本上预先填充一些已知的细节)。是#bookName和#bookEmail我遇到了问题

我使用的代码是:

$.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);
});

3 个答案:

答案 0 :(得分:2)

您还可以使用text();

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

答案 1 :(得分: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?

答案 2 :(得分:0)

好吧,我不得不使用一种解决方法来做到这一点,一点也不好,但至少让我坚持到背景,直到构建的其余部分完成。

不是将其添加为值,而是必须在新的php页面中构建整个表单的欺骗并使用.load插入。好的是它有效,坏的是如果我想重用代码它没有用,我将不得不构建另一个页面。

我应该保持这个问题,因为我只找到了一个解决方法,Stackoverflow是如何工作的?