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()
可以用于隐藏字段,但不能用于其他类型。