无法使用jQuery添加html

时间:2010-11-25 01:50:40

标签: jquery thickbox

我在页面上有一个链接,当点击它时会打开一个带有Ajax模式登录内容的厚盒窗口。奇怪的是,如果我删除alert('');下一个jquery代码行不起作用。 $('#logintest').before('<input type="hidden" value="' +st+ '" name="ReturnTo">');

如果alert('');存在,则隐藏输入会在输入之前添加到厚箱模式窗口,其id应为“logintest”。

我无法弄明白为什么,任何人?

以下是主页上的代码

<a class="login_links" id="myaccount" href="/myaccount.asp">My Account</a>

<script type="text/javascript" language="javascript">
$(function(){
$(".login_links").click(function(){   
var t = this.title || null;
var s = $(this).attr("href");
var g = this.rel || false;
var l = '/v/AjaxLogin.asp?height=100&width=300&modal=true'
tb_show(t,l,g);
var st = s.substr(s.lastIndexOf("/") + 1);
alert('');
$('#logintest').before('<input type="hidden" value="' +st+ '" name="ReturnTo">');
return false;
});
});
</script>

以下是ajax页面上的代码

<div style="text-align:center ">
<form action="/login.asp" method="post" name="loginform">
<table border="0" cellpadding="3" cellspacing="3" style="margin:0 auto;">
<tr>
    <td>Username:</td>
        <td><input type="text" maxlength="75" size="30" value="" name="email"></td>
</tr>
<tr>
        <td>Password:</td>
        <td align="left"><input id="logintest" type="password" maxlength="20" size="20" name="password"></td>
</tr>
<tr align="right">
        <td colspan="2"><input type="submit" value="Login">&nbsp;<input type="submit" id="cancel" value="Cancel" onclick="tb_remove();return false;"></td>
</tr>

1 个答案:

答案 0 :(得分:1)

Ajax加载是异步的。没有警报就无法工作的原因是因为ajax请求中的html尚未附加到dom。您需要将该代码移动到成功回调。我不确定TB是否提供了这个。

相关问题