2012-04-02 6 views
0

私はこれが同じidと名前jqueryを持つ2つの非表示フィールドの値を変更するにはどうすればよいですか?

<input type="hidden" id="uidhcdm" name="uidhcdm" value="0"> 
<input type="hidden" id="uidhcdm" name="uidhcdm" value="0"> 

と私は変更ヴァル

function changeval(x,val) 
{ 
    $('#'+x).val(val); 
} 

と呼ばれる機能を使用していますが、私は関数を実行するとき、それは最初の隠されたフィールド値ではなく、秒に影響をフィールドがあります!

私を助けてください!

+7

あなたは同じIDを持つ2つのフィールドを持つべきではありません! –

+4

同じIDを持つ2つの要素を持つべきではありません。このような場合は 'class'で選択してください。 – asawyer

+1

同じIDを持つ要素を2つ以上持つことはできません。結果は予測できません。代わりにクラスを使用してください。 – Th0rndike

答えて

2

divフィールドに入力フィールドを入れることができます。

<div id="View"> 
<input type="hidden" id="uidhcdm" name="uidhcdm" value="0"> 
<input type="hidden" id="uidhcdm" name="uidhcdm" value="0"> 
</div> 

次に使用しますか?

function changeval(x,val) { 
$("#View > input").each(function() { 
if ($(this).id===x) { 
    $(this).val(val); 
}})}; 

私はこれがうまくいくと思います。

+0

要素のIDが同じであることを主張しているわけではありません。===演算子が正しく動作するかどうかわかりません。 – Oofpez

4

タグの属性「id」は一意である必要があることを認識する必要があります。 "id"と同じ値を持つ要素をさらに定義することはできますが、すべてのDOMアクセスは最初の要素のみを取得します。定義によって、1つの要素に1つの特定のIDを持たせることができます。
他の単語:複数の要素で同じIDを持つコードが不正です。

+0

thaks thats nice – Beraki

2

IDは一意である必要があります。 classidを変更します。

<input type="hidden" class="uidhcdm" name="uidhcdm" value="0"> 
<input type="hidden" class="uidhcdm" name="uidhcdm" value="0"> 

次にchangeval().#を変更します。

function changeval(x,val) { 
    $('.'+x).val(val); 
} 
+0

あなたもロック感謝!! – Beraki

関連する問題