在窗口窗体中禁用控件的通用方法



我正在尝试让表单项(在本例中为单选按钮)在双击时切换禁用状态。 默认情况下,我希望禁用该项目(这部分有效),但是我似乎无法让我的 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;"


好的,报废以上。该事件不会在禁用的元素上触发。

但是问问自己,这是否真的是一个好主意。我的意思是,用户如何知道双击。如果用户无法双击(即触摸屏/手机...或者像我这样只使用键盘的人)

最新更新