jqueryで非表示入力の値を設定する


93

jQueryを使用して、以下の非表示フィールドの値を設定しようとしています。

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

私はこのコードを使用しています:

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

しかし、機能していません。私のコードの何が問題になっていますか?


4
完全に明確にするために、jQueryはDOM要素のコレクションを返します。テストはDOM要素にはならず、配列になります。.valueの単純なol 'javascriptを使用するには、test [0] .valueを実行するか、コレクションが複数ある場合はコレクションをループします。それ以外の場合、test.val( 'work!')は、DOM要素オブジェクトのプロパティであるtest.valueではなくjQueryメソッドであるため機能します。
Scottux、2012年

回答:


129

val代わりに使用する必要がありますvalue

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

33

これは私のために働きました:

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

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

1
奇妙なことですが、それを行うことになっています
Haim Evgi、2011年

「type = 'hidden'」ではなく「Type = 'hidden'」があるので問題ありませんか?大/小文字混合の属性については不明です。ストローをつかんでいる可能性があります...
Hogsmill、2011年

1
ここでの問題はセレクターだと思います。input[name="testing"引用符間でテストする必要があると思います...>値を設定しても機能しない場合は、最初に要素を取得してみてください。取得できない場合は、問題は.val()ではなく、おそらくセレクタにあります
Thomas Mulder


7

以下に値を割り当てたい場合は、XXXという名前の非表示の入力があるとします。

<script type="text/javascript">

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

参考までに、コードのみの回答は一般に低品質のフラグが付けられ、通常は削除されます。あなたがそれを続けて(おそらく)賛成したいなら、あなたの答えでいくつかのコンテキスト/説明を投稿してください。
sgress454 2014年

使用しているセレクター(#XXX)はid属性用です。入力XXXに「名前を付けた」場合、セレクターはになりますinput[name="XXX"]
krummens 2017年

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");
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.