jqueryでradioの値を取得するとおかしいかも??


Memoです。


複数のradioグループが(nameが複数)ある場合に、
前提はたとえばこれ↓

<input type="radio" name="a" value="1" checked>
<input type="radio" name="a" value="2">

<input type="radio" name="b" value="1">
<input type="radio" name="b" value="2" checked>

<input type="radio" name="c" value="1">
<input type="radio" name="c" value="2" checked>


の check されている方のValueは何?ってのをjqueryを使って取得して、

alert( $("input[@name='a']:checked").val() );
alert( $("input[@name='b']:checked").val() );
alert( $("input[@name='c']:checked").val() );


alertで出してみると。

 1
 1
 1

となる。
一番はじめに出てくるradioの値が、その後出てくるradioの値にも反映されているような感じ。
仮に、aをvalue="2"にチェック入れて他のを変えて動かすと、すべて"2"と表示される。


むむむ。
一組しかない場合は、ちゃんと取れる。


めんどくさいので解析せずに、jqueryを使わない方法で逃げました。



※今日時点の最新版、jquery-1.3.2.min.jsでもそうでした。


追記(2009/03/05)
この現象が起こったのは、jquery-1.3.1.jsです。