我正在尝试再次单击时取消选中单选按钮 以下代码仅适用于第一次取消选中。
lastChecked = null;
语句中的 if
发出“永远不会使用分配的值”的警告
我怀疑这是问题的原因,我无法弄清楚。
如何将此变量安排在正确的范围内?
var lastChecked = null;
$j('input[name=radio-group]:radio').click(function(){
if (lastChecked == this) {
this.checked = false;
lastChecked = null;
}
lastChecked = this;
});
答案 0 :(得分:1)
你应该使用else来分配值lastChecked = this;
,否则lastChecked
变量总是具有点击的单选按钮的值而永远不会为空
$j('input[name=radio-group]:radio').click(function(){
if (lastChecked == this) {
this.checked = false;
lastChecked = null;
}
else
{
lastChecked = this;
}
});
此外,不是将单选按钮指定给变量,而是为其指定单选按钮值。这将有助于您更好地调试脚本,例如发出警报并检查选择了哪个无线电等,请参阅下面的代码
$j('input[name=radio-group]:radio').click(function(){
if (lastChecked == this.value) {
this.checked = false;
lastChecked = null;
}
else
{
lastChecked = this.value;
}
});
答案 1 :(得分:1)
可能有多个单选按钮,但您只处理所有单个变量lastChecked
尝试使用.data()
方法
$('input[name=radio-group]:radio').click(function () {
$('input[name=radio-group]:radio').not($(this)).data("lastChecked",false);
if (!$(this).data("lastChecked")) {
$(this).data("lastChecked", (this.checked = true))
} else {
$(this).data("lastChecked", (this.checked = false))
}
});