使用jQuery设置隐藏输入框的值。

115

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

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

我正在使用以下代码:

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

但是它不能运行。我的代码有什么问题?


5
为了更清晰地表达,jQuery 返回一组 DOM 元素。test 不会变成 DOM 元素,它变成了一个数组。如果要使用普通的 JavaScript,比如 .value,可以使用 test[0].value 或者循环遍历集合(如果有多个元素)。否则,test.val('work!') 可以解决问题,因为它是 jQuery 的方法,而 test.value 是 DOM 元素对象的属性。 - Scottux
8个回答

145

你应该使用val而不是value

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

37

这个对我有用:

$('input[name="sort_order"]').attr('value','XXX');

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

1
奇怪,它应该这样做。 - Haim Evgi
因为“Type='hidden'”而不是“type='hidden'”,这会导致问题吗?对于大小写混合的属性不确定。可能只是无谓的担心... - Hogsmill
1
我认为这里的问题在于选择器。我认为它应该是 input[name="testing" --> 在引号中加上 testing... 每当设置某个值不起作用时,请先获取元素。如果您无法获取它,则问题不在于 .val(),而可能在于选择器。 - Thomas Mulder

10

假设您有一个带有id为XXX的隐藏输入框,如果您想将值分配给以下内容:

<script type="text/javascript">

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

FYI,仅包含代码的答案通常会被标记为低质量,并且通常会被删除。如果您希望答案保留并(可能)获得赞同,请尝试发布一些上下文/解释。 - sgress454
您正在使用的选择器(#XXX)是针对 id 属性的。如果您给一个输入命名为 XXX,那么选择器将是 input[name="XXX"] - krummens

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

5
为了使用jquery,可以这样做:
var test = $("input[name=testing]:hidden");
test.val('work!');

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

请查看在这个fiddle中的工作。

0

你也可以通过这种方式为隐藏输入字段设置值

 <input type="hidden" value="" name="testing" id-"testing" />
document.getElementById("testing").value = 'your value';

这是其中一种方法。


0

你不需要设置名称,只需提供一个ID即可。

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

然后你可以使用jQuery的'val()'方法,如下所示:

 $('#testId').val("work");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接