1

ユーザーの選択をフォームで使用するコードを作成しようとしています。コードは、選択されたラジオの名前を含む警告ウィンドウを表示する必要がありますが、機能しません。A がセレクターであるか、B が選択されているかの A 警告のみが表示されます。これがフォームです

<FORM>
<input type="radio" name="search_type" value="A"/>type A<br/>
<input type="radio" name="search_type" value="B"/>type B<br/>
</FORM>

これはjsコードです

$(document).ready(function(){
    $('input:radio[name="search_type"]').change(function() {
        if ($('input:radio[name="search_type"]').val() == 'A'){
                alert('type A');
        };
        if ($('input:radio[name="search_type"]').val() == 'B'){
                alert('type B');
        };
    });
});

ここで、実行中のコードを見つけることができます: http://jsfiddle.net/ur7cc/ なぜ動かないのか誰か教えてください。ありがとう!

4

4 に答える 4

6

を扱うときは、:checkedセレクターを使用する必要があります。または、基本的に変更をトリガーしたラジオの場所を使用することもできます。下記参照、.val()radio/checkbox$(this).val()this

$(document).ready(function(){
    $('input:radio[name="search_type"]').change(function() {
        if ($(this).val() == 'A'){
                alert('type A');
        }
        if ($(this).val() == 'B'){
                alert('type B');
        }
    });
});

:checkedセレクターで使用するには、

$('input:radio[name="search_type"]:checked').val()

デモ: http://jsfiddle.net/skram/ur7cc/1/

于 2012-06-11T21:20:37.327 に答える
2

代わりに使用$(this)します。これは簡略化されたバージョンです。

$(document).ready(function(){
    $('input:radio[name="search_type"]').change(function() {
        alert("Type: "+$(this).val());
    });
});
​

デモ: http://jsfiddle.net/ur7cc/2/

于 2012-06-11T21:22:03.553 に答える
1

これは私が書いてテストした実用的なコードです。できます。チェックボックスのステータスを別のものに書き出します。試してみます。それは私のために働いた。

<input type="radio" onclick="alert(this.name);" name="A"/> button A<br>
<input type="radio" onclick="alert(this.name);" name="B"/> button B<br>

それが役立つことを願っています!

于 2012-06-11T21:31:41.517 に答える
0

セレクターは$('input:radio[name="search_type"]')配列オブジェクトを返します。あなたはこれを過度に複雑にしています。再度使用する必要はありません。取得したオブジェクトを使用した、はるかに簡単な方法を次に示します。

$(document).ready(function(e) {

 $('input:radio[name="search_type"]').change(function() {
    alert ("type "+$(this).val());
  })
})
于 2012-06-11T21:44:22.150 に答える