1. ホーム
  2. jquery

[解決済み] 変更イベントでradioを使用するには?

2022-03-17 14:43:50

質問

私は2つのラジオボタンを持っている 変更イベントで、ボタンを変更したいのですが、可能ですか? 私のコード

<input type="radio" name="bedStatus" id="allot" checked="checked" value="allot">Allot
<input type="radio" name="bedStatus" id="transfer" value="transfer">Transfer

スクリプト

<script>
    $(document).ready(function () {
        $('input:radio[name=bedStatus]:checked').change(function () {
            if ($("input[name='bedStatus']:checked").val() == 'allot') {
                alert("Allot Thai Gayo Bhai");
            }
            if ($("input[name='bedStatus']:checked").val() == 'transfer') {
                alert("Transfer Thai Gayo");
            }
        });
    });
</script>

解決方法は?

を使用することができます。 this を参照し、現在の input 要素を使用します。

$('input[type=radio][name=bedStatus]').change(function() {
    if (this.value == 'allot') {
        alert("Allot Thai Gayo Bhai");
    }
    else if (this.value == 'transfer') {
        alert("Transfer Thai Gayo");
    }
});

http://jsfiddle.net/4gZAT/

に対して値を比較していることに注意してください。 allot の両方において、if文と :radio セレクターは非推奨です。

jQueryを使用していない場合は、以下のようになります。 document.querySelectorAllHTMLElement.addEventListener メソッドを使用します。

var radios = document.querySelectorAll('input[type=radio][name="bedStatus"]');

function changeHandler(event) {
   if ( this.value === 'allot' ) {
     console.log('value', 'allot');
   } else if ( this.value === 'transfer' ) {
      console.log('value', 'transfer');
   }  
}

Array.prototype.forEach.call(radios, function(radio) {
   radio.addEventListener('change', changeHandler);
});