无法使用jQuery设置隐藏的输入字段的值

fra*_*o86 34 jquery hidden-field

我在表单标记中有一个简单的输入字段:

<body>
  <form action="#">
      <label>Input</label>
      <input type="hidden" id="foo" name="foo" />

  </form>
</body>
Run Code Online (Sandbox Code Playgroud)

我试图从js文件中设置此值:

$(document).ready(function(){
    $('#foo').val('foo')
})
Run Code Online (Sandbox Code Playgroud)

但是在html源代码中,根本没有设置该属性.如果我尝试将输入类型设置为"按钮"或其他任何东西,它就可以工作.我只是不能用hidden输入字段来做.我究竟做错了什么?

Fer*_*min 26

如果设置val标签,是否可以从隐藏字段中检索值?

例如

<input type="hidden" id="foo" name="foo" value="bar" />

$(document).ready(function(){
  alert($('#foo').val());
})
Run Code Online (Sandbox Code Playgroud)

  • 只是为了澄清:作者试图使用"查看源代码"来查看修改后的值.注意通过"请参阅源代码"无法看到动态更改DOM. (17认同)

fra*_*o86 25

我想到了.该值由jQuery设置,但是当我查看源时,未显示新值.我试过这个(感谢Fermin):

$('#foo').val('poo')
alert($('#foo').val())
Run Code Online (Sandbox Code Playgroud)

并显示修改后的值.


Jac*_*son 23

我找到的最佳答案是http://forum.jquery.com/topic/passing-value-to-hidden-form-field.

而不是$('#Data').val(data);隐藏字段ID是"数据"的位置

使用 $('input[name=Data]').val(data);

适合我

  • 它的工作原理是因为这里的"数据"是输入的"名称",而不是id.无论如何,我投了一票,因为我也忘记了. (3认同)