JQuery以分离形式填写输入(隐藏填写,但其他未填写)
在我的页面上,我有这样一个虚拟表单:JQuery以分离形式填写输入(隐藏填写,但其他未填写),jquery,forms,Jquery,Forms,在我的页面上,我有这样一个虚拟表单: <div id="form_container"> <form id="new_form" action="..."> <input type="hidden" id="hidden_field" name=...> <input type="text" id="text_field" name=...> <... submit button ...> <
<div id="form_container">
<form id="new_form" action="...">
<input type="hidden" id="hidden_field" name=...>
<input type="text" id="text_field" name=...>
<... submit button ...>
</form>
</div>
<input type="hidden" id="hidden_field" name=... value="xxx">
<input type="text" id="text_field" name=...>
然后,当我需要弹出表单时,我会在某些函数中执行以下操作:
var newForm = dummyForm .clone()
$('#hidden_field', newForm).val(dataForHidden);
$('#text_field', newForm).val(dataForText);
然后将newForm
附加到页面上的某个元素,使其可见
但是当我检查输入的结果html时(或者我只是在JS调试器中检查newForm.html()
),它看起来是这样的:
<div id="form_container">
<form id="new_form" action="...">
<input type="hidden" id="hidden_field" name=...>
<input type="text" id="text_field" name=...>
<... submit button ...>
</form>
</div>
<input type="hidden" id="hidden_field" name=... value="xxx">
<input type="text" id="text_field" name=...>
即,设置了隐藏字段的值,但丢失了文本字段的值
我的问题是:
1) 这是一个bug,已知的问题,作为设计的特性,还是我做错了什么?
2) 如何解决
我可以考虑在表单已经连接到DOM时填充字段值的解决方案,但在我的例子中,这可能是一个问题,因为另一个库通过回调链将表单连接到DOM
p.S.我通过执行
$(“#text_field”,newForm).attr('value',dataForText)解决了这个问题
但是仍然想知道为什么val()
适用于隐藏字段,而不适用于其他类型。您可以尝试在jQuery中使用attr
谢谢,这就是我现在所想的,它可以工作,但仍然想知道为什么
val()
可以用于隐藏字段,但不能用于其他类型。