2011-01-29 76 views

答えて

80

.val()さえ<select multiple>の例で<select>を含む有用な方法ですべての入力タイプ要素の作品、...、チェックボックス、ラジオボタン(十分に明確だと思います配列は選択された値で、文字列ではありません)。

.attr('value')は、テキストボックスのようないくつかの状況で同じように動作しますが、基本的には異なる目的を果たします。好ましい方法は.val()です。どこでも一貫した動作を得ることができます。ただ、キックのために、ここで.val()が便利になり、そのチェックボックスのためにあまり知られていない例


です:

<input name="mytest" type="checkbox" value="1"> 
<input name="mytest" type="checkbox" value="2"> 
<input name="mytest" type="checkbox" value="3"> 
<input name="mytest" type="checkbox" value="4"> 

あなたがこれを行うことができます:

$("input[name='mytest']").val([1, 2, 3]); 

....確認対象となります最初の3つのボックス。 You can give it a try here

+1

あまり知られていない例をありがとう。 – ScottE

+1

よく書かれています! jQueryがこのようなメソッドで行う、ブラウザ間の正規化に短いエクスプレッションを追加したいかもしれません。 – mekwall

+11

'.attr( 'value')'は現在の状態ではなく元の値を読み込むことにも注意してください。 [また、参照してください。](http://stackoverflow.com/questions/8312820/jquery-obj-val-vs-obj-attrvalue) – XML

9

また、.attr( 'value')は、入力フィールドを編集する前の値を返します。 .val()は現在の値を返します。 ACTISの答えに追加するには

+0

ありがとうございます。 – Vikram

1

...

も.ATTR( '値')入力 フィールドを編集する前にした値を返します。 .val()は現在の値を返します。

テキスト入力フィールドを使用している場合、.attr()と.val()のセッターメソッドは異なる働きをします。

.val('newval') 

は、ユーザーがページに表示する値を設定し、その後の.val()メソッド呼び出しによって返される値を更新します。要素のvalue =属性は設定されません。

大藤

.attr('value','newval') 

要素の値=属性を設定します。ユーザーが入力していないときに.val(newval)が呼び出されていない場合、これを実行すると視覚的にコントロールが更新され、.val()によって返された値が更新されます。

次jsfiddleをさらに調査することができます

https://jsfiddle.net/jasonnet/vamLww2k/

幸運。

関連する問題