function send_mail( token, loader ) {
$(".send_mail").bind( "click", function() {
try{
var to = $(this).attr('ref');
var mail_form = $("#mail_form");
mail_form.find("li:eq(0) input").val("sdsds");
//mail_form.find("li:eq(0) input").attr("ref", "sdsds");
//mail_form.find("li:eq(0) input").attr("value", "sdsds");
$.fancybox(mail_form.html(), { 'autoDimensions' : false, 'width' : 360, 'height' : 200, 'transitionIn' : 'none', 'transitionOut' : 'none', 'scrolling' : 'no', 'showCloseButton' : false });
return false;
}catch(err){alert(err);}
});
}
我的问题是,如果我使用
,上述内容将无效//mail_form.find("li:eq(0) input").attr("ref", "sdsds");
它将改变参考甚至
//mail_form.find("li:eq(0) input").attr("value", "sdsds");
不起作用......
这里有什么想法吗?
答案 0 :(得分:1)
jQuery分别使用elem.value = ...
和elem['value'] = ...
设置value
属性时使用val()
和attr
。这些方法在value
属性方面不会更改实际的HTML。因此,当您从mail_form.html()
创建fancybox时,您将获得原始的value
属性值,因为它们仍然存在于HTML中。
但是,setAttribute()
确实会更改基础HTML value
属性。尝试在将值更改为sdsds之后和调用$.fancybox(...)
之前添加此内容:
mail_form.find("li:eq(0) input").each( function() {
this.setAttribute("value",$(this).val());
});