web-dev-qa-db-ja.com

ラジオボタンからのjQuery変更値

選択したラジオボタンに応じて値を変更する必要がある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の値を自動的に変更する必要があります。

11
Nacho Sarmiento

ユーザーが選択したラジオボタンを変更するたびに、カテゴリの値を変更する必要があります。したがって、ユーザーがラジオをクリックしたときにトリガーするイベントが必要になります。 [〜#〜] fiddle [〜#〜] をチェックしてください。

var category = null;
$("input[name='category']").click(function() {
    category = this.value;
});
15
Jose Vega

イベントハンドラーをchangeイベントにアタッチします。

$(':radio[name="category"]').change(function() {
  var category = $(this).filter(':checked').val();
});
40
Blender
var category;
    $(':radio[name="category"]').change(function() {
      category=this.value;
    });

そして、これは jsfiddle.net のデモです。

1
nima shayanfar

私はあなたが単にこのようなものを必要とすると思います:

var category;

    $('radio[name="category"]').click(function(){
      category=this.value;
    });
1
albanx

複数の要素に同じ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>

そしてあなたのコードはまだ同じであり、それはうまくいくはずです:)

1
ala'a alqadi

category変数を使用する代わりに、チェック済みラジオボタンの値をどこにでも使用したい場合は$('[name="category"]:checked').val()を使用します。それ以外の場合は、changeまたはclickイベントを使用して、checkedラジオボタンの値をcategory変数に設定できます。

0
ShankarSangoli

ラジオボタンの変更イベントをキャプチャするために 。change() を利用します。

0
bdparrish