我正在尝试让表单项(在本例中为单选按钮)在双击时切换禁用状态。 默认情况下,我希望禁用该项目(这部分有效),但是我似乎无法让我的 javascript 函数更改 ondblclick=" 的禁用状态。还值得注意的是,我不想在许多不同的表单项上重用此功能。因此,重要的是我将其保留为通用,以便只需调用函数即可重用它。
这是我的表单单选按钮的代码:
<input type="radio" name="clubMember" id="member" value="Member" <?= $U_Club_Member == "Member" ? 'checked' : '' ?> onMouseDown="this._chckd = this.checked" onclick=" if (this._chckd) this.checked = false; return validateClubInfo();" ondblclick="return disableToggle();" disabled = "true" />Club Member
<input type="radio" name="clubMember" id="nonMember" value="Non-Member" <?= $U_Club_Member == "Non-Member" ? 'checked' : '' ?> onMouseDown="this._chckd = this.checked; this._dsbld = this.disabled" onclick="if (this._chckd) this.checked = false; return validateClubInfo();" ondblclick="return disableToggle();" disabled = "true" />Non Member
这是我的javascript函数:
function disableToggle()
{
if(this.disabled == true)
{
this.disabled = false;
return true;
}
else if(this.disabled == false)
{
this.disabled = true;
return true;
}
}
由于您没有将上下文传递给 disableToggle
函数,因此它正在尝试禁用整个窗口。
试试这个: ondblclick="disableToggle(this);"
而这个:function disableToggle(radio) {radio.disabled = !radio.disabled;}
甚至这个:ondblclick="this.disabled = !this.disabled;"
好的,报废以上。该事件不会在禁用的元素上触发。
但是问问自己,这是否真的是一个好主意。我的意思是,用户如何知道双击。如果用户无法双击(即触摸屏/手机...或者像我这样只使用键盘的人)