我正在使用带有2个单选按钮的jquery-ui按钮集,用于是/否输入。

var yesInput = document.createElement("input");
yesInput.type = "radio";
$(yesInput).attr('id', "njs1");
$(yesInput).prop('checked', this._data);

var noInput = document.createElement("input");
noInput.type = "radio";
$(noInput).attr('id', "njs2");
$(noInput).prop('checked', !this._data);


我在这些按钮上以及在处理功能中调用更改事件,试图检测是否单击了选中的按钮。 buttonSet是制成buttonset()的div。

$("input[type=radio]", buttonSet).change(checkHandler);

var data= $("input[type=radio]", buttonSet).eq(0).is(':checked');


在这种情况下,我希望如果单击第二个按钮,则数据应返回false。我的理解是,当我检查收音机时,将其html修改为添加checked

但是,无论调用什么,数据始终为true

我究竟做错了什么?如何获得正确的值?

编辑:

Example fiddle

如您所见,我可以单击“否”,并且仍选中“是”。既然是收音机,我希望它的表现方式

最佳答案

为什么不使用jQuery创建元素的方式?
将点击事件用于单选按钮。

$('<input/>').attr({type: "radio", "id": "njs1"})
.prop("checked", !this._data)
.click(checkHandler);

关于javascript - jquery-ui buttonset click事件似乎没有更改选中状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33174553/

10-09 23:05