選択したラジオボタンに応じて値を変更する必要があるcategory
という変数があります。問題は、ラジオボタンなどをクリックしてもすぐに値が変化しないことです。
これは私が持っているコードです:
<form>
<input type="radio" name="category" value="doctor" /> Doctor
<input type="radio" name="category" value="police" checked /> Policia
</form>
var category = $('[name="category"]:checked').val();
ラジオボタンをクリックすると、変数category
の値を自動的に変更する必要があります。
ユーザーが選択したラジオボタンを変更するたびに、カテゴリの値を変更する必要があります。したがって、ユーザーがラジオをクリックしたときにトリガーするイベントが必要になります。 [〜#〜] fiddle [〜#〜] をチェックしてください。
var category = null;
$("input[name='category']").click(function() {
category = this.value;
});
イベントハンドラーをchange
イベントにアタッチします。
$(':radio[name="category"]').change(function() {
var category = $(this).filter(':checked').val();
});
var category;
$(':radio[name="category"]').change(function() {
category=this.value;
});
そして、これは jsfiddle.net のデモです。
私はあなたが単にこのようなものを必要とすると思います:
var category;
$('radio[name="category"]').click(function(){
category=this.value;
});
複数の要素に同じIDを指定しないでください。代わりに次のようにクラスを使用する必要があります。
<form>
Option 1<input type="radio" name="opt" class="radio" value="Option 1">
Option 2<input type="radio" name="opt" class="radio" value="Option 2">
</form>
の代わりに :
<form>
Option 1<input type="radio" name="opt" id="radio" value="Option 1">
Option 2<input type="radio" name="opt" id="radio" value="Option 2">
</form>
そしてあなたのコードはまだ同じであり、それはうまくいくはずです:)
category
変数を使用する代わりに、チェック済みラジオボタンの値をどこにでも使用したい場合は$('[name="category"]:checked').val()
を使用します。それ以外の場合は、change
またはclick
イベントを使用して、checked
ラジオボタンの値をcategory
変数に設定できます。
ラジオボタンの変更イベントをキャプチャするために 。change() を利用します。