获取已选中单选按钮的值,而无需重新选择按钮

时间:2015-08-12 16:38:23

标签: javascript jquery

所以我得到的按钮如下:

var checkedReportFilterButton = $('input[name=reportfilter]:checked', '#reportChartForm');
....
if (checkedReportFilterButton.val() ....

稍后,我可以轻松地附加更改处理程序,如下所示:

reportFilterButtons

在这个处理程序内部,我需要获取当前选中按钮的值,所以我这样做:

checkedReportFilterButton

reportFilterButtons和{{1}}选择器似乎多余。有没有办法通过对{{1}}起作用而不进行第二次选择来获得检查/值?

2 个答案:

答案 0 :(得分:2)

您可以使用$.filter查找已选中的内容:

reportFilterButtons.filter(':checked').val()

答案 1 :(得分:1)

jQuery事件侦听器处理程序this属性指向作为事件目标的元素。这意味着您不必再次找到它。只需包装一个jQuery对象$(this),你就可以去了(小提琴demo)。

代码:

<div id="reportChartForm">
    <input type="radio" name="reportfilter" value="1">
    <label>Radio 1</label>
    <input type="radio" name="reportfilter" value="2">
    <label>Radio  2</label>
    <input type="radio" name="reportfilter" value="3">
    <label>Radio  3</label>
</div>

var reportFilterButtons = $('input[name=reportfilter]', '#reportChartForm');

reportFilterButtons.change(reportFilterButtonsChange);

function reportFilterButtonsChange() {
    var value = $(this).val(); // this is the reference to the element
    console.log(value);
}