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

我有一个简单的input字段内的表单标签:

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

我试图从一个js文件中设置这个值:

 $(document).ready(function(){ $('#foo').val('foo') }) 

但是在html源代码中根本没有设置属性。 如果我尝试将inputtypes设置为“button”或其他任何东西,它的工作原理。 我只是不能用hiddeninput字段。 我究竟做错了什么?

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

例如

 <input type="hidden" id="foo" name="foo" value="bar" /> $(document).ready(function(){ alert($('#foo').val()); }) 

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

 $('#foo').val('poo') alert($('#foo').val()) 

并显示修改后的值。

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

$('#Data').val(data);而不是$('#Data').val(data); 在隐藏字段ID是“数据”

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

为我完美的作品

我也一直在努力。 如果你设置一个初始值为“0”,然后使用类似Firebug的东西来观察DOM,你会注意到DOM随即更新。 出于某种原因,如果初始值设置为null或空string,DOM不会更新,但实际上该值仍然存储。

你可以通过在设置val之后提醒val来testing它(正如在之前的文章中所build议的那样)

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

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

希望能帮助到你。

我需要看到整个文件,但我的猜测是要么不包括jQuery.js源文件,要么你有多个元素的ID为foo

我知道这是为了迟到,但这仍然可以帮助一个人….如果以上解决scheme都没有工作,只要做到这一点…

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

我有一个隐藏的input字段相同的问题。 我将初始值设置为0,它工作正常,但有时我不想有一个初始值为0.所以我testing了value =“”,一个空格,它也适用于我。 如果你用PHP填充dynamic值,你可以使用value="<?= $val+0; ?>"如果0对你好,或者value="<?= $val; ?> "如果空格是好的。

上述解决scheme都不适合我。

我不得不做以下工作:

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

而不是用string初始化你的值属性,像这样初始化你的input。

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

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