JQuery更改单选按钮的值
问题描述:
我有一个名为category
的变量,它必须根据所选的单选按钮更改其值。问题在于,我无法单击单选按钮或其他按钮,值会立即发生变化。JQuery更改单选按钮的值
这是我的代码:
<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;
});
答
我想你需要简单地是这样的:
var category;
$('radio[name="category"]').click(function(){
category=this.value;
});
答
而不是使用category
变量使用$('[name="category"]:checked').val()
,无论你想选中的单选按钮的值。否则,您可以利用change
或click
事件将checked
单选按钮值设置为category
变量。
+0
这是一个直接的方法,而不是实现'change'事件。 – Peter
答
附加一个事件处理程序的change
事件:
$(':radio[name="category"]').change(function() {
var category = $(this).filter(':checked').val();
});
答
var category;
$(':radio[name="category"]').change(function() {
category=this.value;
});
而这是一个jsfiddle.net演示。
答
你不应该给一个以上的元素相同的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>
和你的代码仍然是相同的,并它应该工作正常:)
我认为使用“更改”事件更好,它比“点击”更通用。 – T30