无法使用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”或其他任何东西,它的工作原理。 我只是不能用hidden
input字段。 我究竟做错了什么?
如果你设置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”将包含您设置的新值。