我有一个名为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
的值。
答案 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()
,只要您想要选中单选按钮的值。否则,您可以使用change
或click
事件将checked
单选按钮值设置为category
变量。
答案 6 :(得分:0)
利用.change()来捕获单选按钮的更改事件。