JQuery从单选按钮更改值

时间:2012-01-25 21:48:21

标签: javascript jquery radio-button

我有一个名为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的值。

7 个答案:

答案 0 :(得分:39)

将事件处理程序附加到change事件:

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

答案 1 :(得分:14)

每次用户更改所选单选按钮时,您都需要更改类别的值。因此,当用户点击收音机时,您需要触发一个事件。您可以查看FIDDLE

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

答案 2 :(得分:1)

我认为你只需要这样的东西:

var category;

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

答案 3 :(得分:1)

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

这是一个jsfiddle.net演示。

答案 4 :(得分:1)

你不应该为多个元素提供相同的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>

并且您的代码仍然相同,它应该可以正常工作:)

答案 5 :(得分:0)

而不是使用category变量使用$('[name="category"]:checked').val(),只要您想要选中单选按钮的值。否则,您可以使用changeclick事件将checked单选按钮值设置为category变量。

答案 6 :(得分:0)

利用.change()来捕获单选按钮的更改事件。