我在页面上有一个链接,当点击它时会打开一个带有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"> <input type="submit" id="cancel" value="Cancel" onclick="tb_remove();return false;"></td>
</tr>
答案 0 :(得分:1)
Ajax加载是异步的。没有警报就无法工作的原因是因为ajax请求中的html尚未附加到dom。您需要将该代码移动到成功回调。我不确定TB是否提供了这个。