Can';t设置隐藏输入字段';使用jQuery调用s值

Can';t设置隐藏输入字段';使用jQuery调用s值,jquery,hidden-field,Jquery,Hidden Field,我在表单标记中有一个简单的输入字段: <body> <form action="#"> <label>Input</label> <input type="hidden" id="foo" name="foo" /> </form> </body> 但是在html源代码中,根本没有设置属性。如果我尝试将输入类型设置为“button”或其他任何类型,它会起作用。我就是不能用隐藏的

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

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

  </form>
</body>

但是在html源代码中,根本没有设置属性。如果我尝试将输入类型设置为“button”或其他任何类型,它会起作用。我就是不能用
隐藏的
输入字段。我做错了什么?

我需要查看整个文件,但我猜要么你没有包含jQuery.js源文件,要么你有多个ID为
foo的元素
如果你设置了val标记,你能从隐藏字段中检索值吗

e、 g


$(文档).ready(函数(){
警报($('#foo').val());
})

我想出来了。这个值是由jQuery设置的,但是当我查看源代码时,没有显示新的值。我试过这个(感谢Fermin):


它显示了修改后的值。

我也一直在努力解决这个问题。如果您设置了一个初始值,比如“0”,然后使用Firebug之类的东西观察DOM,您会注意到DOM随后会更新。出于某种原因,如果初始值设置为null或空字符串,则DOM不会更新,但实际上仍然存储该值


您可以通过在设置val后向val发出警报来测试这一点(如前几篇文章中所建议的)

我对隐藏的输入字段也有同样的问题。 Id我将初始值设置为0,效果很好,但有时我不希望初始值为0。 所以我测试了value=“”,一个空格,它对我也适用。
如果您从PHP动态填充值,您可以在0适合您的情况下执行
value=“”
,或者在空格适合的情况下执行
value=“”

POST
-ing我的表单并且我的PHP脚本无法获得
POST
-ed值时,我遇到了这个问题。我用了这个:

$('#elemId').attr("name", theValue);

希望有帮助。

我找到的最好答案是表格

而不是
$('#Data').val(Data)其中隐藏字段ID为“数据”

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


非常适合我

以上解决方案都不适合我

我必须做到以下几点才能让它发挥作用:

$('#foo').val(data).blur();

而不是用字符串初始化value属性,而是像这样初始化输入

<input type="hidden" name="foo" id="foo" value="${foo}">


“foo”也将包含您设置的新值。

我知道已经很晚了,但这可能会帮助某人。。。。如果上述解决方案都不起作用,就这样做吧

$(document).ready(function() {
$('#foo').attr("value","foo") });

我已经确认,设置隐藏字段的值对像这样的jQuery选择器不起作用

$('[name="my_field"]').val('Something');
将不会更新隐藏字段。。。有点令人震惊

<input type="hidden" name="my_field" id="my_field">

我建议使用firefox的firebug之类的开发工具,以便更轻松地查看动态源代码。firefox的Web Developer插件还有一个“查看生成的源代码”工具,该工具将显示应用了所有javascript更改的源代码。只是为了澄清:作者试图使用“查看源代码”查看修改后的值。注意,动态地对DOM所做的更改无法通过“查看源代码”看到。当您需要克隆隐藏的输入时,会出现这种奇怪的情况,因为这里的“数据”是输入的“名称”,而不是id。无论如何,我会投赞成票,因为我也忘记了。héhé。。。我有两个相同的身份证,有两种形式,你的回答让我想检查一下。。。谢谢如果你给输入字段一个初始值会有帮助吗?(即使是空字符串)接受的答案不会回答实际问题,尽管有助于找到解决方案。考虑到这个问题每年有超过10000次的浏览量,最好接受一个真正正确的答案。请确认。使用“”初始化隐藏的输入字段时,我无法使用jQuery更新它。当用0初始化它时,它对我有效。
$(document).ready(function() {
$('#foo').attr("value","foo") });
$('[name="my_field"]').val('Something');
<input type="hidden" name="my_field" id="my_field">
<input type="text" name="my_field" id="my_field" style="display:none">
$('[name="my_field"]').val();