用jQuery设置隐藏输入的值


92

我正在尝试使用jQuery设置隐藏字段的值。

<input type="hidden" value="" name="testing" />

我正在使用此代码:

var test = $("input[name=testing]:hidden");
test.value = 'work!';

但是它不起作用。我的代码有什么问题?


4
为了清楚起见,jQuery返回DOM元素的集合。测试不会成为DOM元素,而是成为一个数组。要使用普通的javascript la .value,可以执行test [0] .value或在集合中循环(如果有多个)。否则,test.val('work!')将为您工作,因为它是一种jQuery方法,而不是test.value(它是DOM元素对象的属性)。
Scottux 2012年

Answers:


128

您应该使用val而不是value

<script type="text/javascript" language="javascript">
$(document).ready(function () { 
    $('input[name="testing"]').val('Work!');
});
</script>


28
$('input[name="testing"]').val(theValue);

1
奇怪,应该这样做
Haim Evgi 2011年

这里不是因为“ Type ='hidden'”而不是“ type ='hidden'”而引起的问题吗?不确定大小写混合属性。可能会抓着稻草...
2011年

1
我认为这里的问题是选择器。.我认为应该input[name="testing"->在引号之间进行测试...每当设置某些值不起作用时,请尝试首先获取该元素。问题不是.val(),而是选择器
Thomas Mulder

7
var test = $('input[name="testing"]:hidden');
test.val('work!');

7

如果要为以下内容分配值,假设您有一个名为XXX的隐藏输入

<script type="text/javascript">

    $(document).ready(function(){
    $('#XXX').val('any value');
    })
</script>

仅供参考,仅代码答案通常会被标记为低质量,并且通常会被删除。如果您希望它随处可见并(可能)受到反对,请尝试在答案中发布一些上下文/解释。
sgress454

您正在使用的选择器(#XXX)用于id属性。如果您“命名”输入XXX,则选择器将为input[name="XXX"]
krummens

4

要使用jquery进行修改,请采用以下方式:

var test = $("input[name=testing]:hidden");
test.val('work!');

要么

var test = $("input[name=testing]:hidden").val('work!');

参见在这个小提琴中工作。


0

您无需设置name,只需提供一个ID就足够了。

<input type="hidden" id="testId" />

与jquery相比,您可以使用如下所示的'val()'方法:

 $('#testId').val("work");
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.