在Windows窗体中禁用控制的通用方法

时间:2014-01-07 22:24:16

标签: javascript html

我正在尝试获取一个表单项(在本例中为单选按钮),以便在双击时禁用切换。默认情况下,我希望禁用该项目(此部分工作)但是我似乎无法使用我的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;
            }
        }

1 个答案:

答案 0 :(得分:0)

由于您没有将上下文传递给disableToggle函数,因此它尝试禁用整个窗口。

试试这个:ondblclick="disableToggle(this);"
这个:function disableToggle(radio) {radio.disabled = !radio.disabled;}

甚至是这样:ondblclick="this.disabled = !this.disabled;"


好的,废弃上述内容。该事件不会触发已禁用的元素。

但问问自己这是不是一个好主意。我的意思是,用户如何知道双击。如果用户不能双击(例如触摸屏/手机......或者像我一样使用键盘的人),该怎么办?