<a href="#addFriend" rel="facebox" title="[+] add <?php echo $showU["full_name"]; ?> as friend">
<div class="addFriend"></div></A>
<div id="addFriend" style="display:none; margin: auto;">
<form action="javascript:DoFriendRequest()" method="post">
<input name="commentFriend" type="text" id="commentFriend" value="" size="22">
<input name="submit" type="submit" id="submit" value="Send">
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
我的表单在这个元素里面是一个jquery灯箱,该字段#commentFriend在DoFriendRequest中获取空值
function DoFriendRequest() {
var wrapperId = '#insert_svar';
$.ajax({
type: "POST",
url: "misc/AddFriendRequest.php",
data: {
mode: 'ajax',
comment : $('#commentFriend').val()
},
success: function(msg) {
$(wrapperId).prepend(msg);
$('#commentFriend').val("");
}
});
}
Run Code Online (Sandbox Code Playgroud)
更新的答案
但当我删除它display:none,它的工作原理.我怎么解决这个问题?
Yak*_*ako 21
对于字段display:none,似乎val()不起作用.
我绕过了这种行为attr():
$('input').attr('value',myNewValue);
Run Code Online (Sandbox Code Playgroud)
您可以通过三种方式来解决此问题;
使元素可见,更新它,然后再次隐藏它。
从 DOM 中detach()元素,使其可见,更新它,隐藏它,然后重新插入到 DOM 中。
克隆()元素,使其可见,更新它,隐藏它,将其插入到 DOM 中并删除原始元素。
方法#2 和#3 可能是您最好的选择,因为它们不会触发重新抽签。所有操作都是针对 DOM“外部”的元素(如果愿意的话,在内存中)完成的。这样你的用户界面就不会跳跃/滑动/移动。
方法#3:
$(function ()
{
var e = $("...");
var c = e.clone();
c.show();
c.html("...");
c.hide();
e.after(c);
e.remove();
});
Run Code Online (Sandbox Code Playgroud)
射手版本(未测试):
var e = $("...");
e.append(e.clone().show().html("...").hide()).remove();
Run Code Online (Sandbox Code Playgroud)
方法#2:
注意:您将需要一个容器,您可以将分离的元素重新插入其中
$(function ()
{
var e = $("...");
var c = $("container");
e.detach();
e.show();
e.html("...");
e.hide();
c.add(e);
});
Run Code Online (Sandbox Code Playgroud)
只是为了更好地衡量 - 未经测试 - 较短的版本:
$("container").add($("...").detach().show().html("...").hide());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14418 次 |
| 最近记录: |