所以我正忙着登记,我想让人们选择他们的性别。我用单选按钮来做这件事。现在,我想要的是有一个禁用的post
按钮,直到两个框中的一个被选中为止,这是我对jQuery所做的:
var $radio = $("input:radio");
$radio.change(function()
{
var checkedButtons = false;
$radio.each(function() {
if (this.checked)
{
var checkedButtons = true;
return false;
}
});
if (checkedButtons)
{
$("#postGender").removeAttr("disabled");
}
else
{
$("#postGender").attr("disabled", "disabled");
}
});
这是一段代码,是我在堆栈溢出上找到的。唯一的错误就是它不起作用。
有关更多代码和演示:JsFiddle,请参见以下内容
发布于 2014-12-20 07:04:21
删除第一个var
块中的if
。var checkedButtons = true;
正在该块的范围内创建一个不同的checkedButtons
。因此,第一个checkedButtons
将保持不变,而另一个将在if
块完成后消失。
应该是checkedButtons = true;
发布于 2014-12-20 07:08:16
你可以大大简化这件事。
如果你想一想,一旦他们点击一个单选按钮,他们就不能真正取消它:他们只能点击另一个单选按钮。因此,一旦按钮改变了一次,就没有必要再监视它了,您可以从那里启用按钮。
$("input:radio").change(function () {
$("#postGender").attr("disabled", false);
});
发布于 2014-12-20 07:13:18
像这样的事情应该可以做到:
var $radio = $("input:radio");
$radio.change(function () {
if ($radio.filter(':checked').length > 0) {
$("#postGender").removeAttr("disabled");
} else {
$("#postGender").attr("disabled", "disabled");
}
});
http://jsfiddle.net/n6sta3dp/8/
几个旁白:
https://stackoverflow.com/questions/27581407
复制相似问题