Javascript 接收禁用选择标签的 onmousedown

发布于 2024-10-20 12:32:10 字数 855 浏览 0 评论 0原文

我有一个带有两个单选按钮的表单:

[radio1]   [radio2] [select]

<input type="radio" id="radio1" name="radio" checked/>
<br/>
<input type="radio" id="radio2" name="radio"/>
<select id="select" onmousedown="test()" disabled="disabled">
    <option>aaa</option>
    <option>bbb</option>
</select>

所需的行为是当勾选 radio1 时,选择框被禁用。 当 radio2 被勾选时,用户可以从选择框中选择某些内容(因此启用)。

我在 radio1 和 radio2 中有必要的事件代码来处理启用/禁用选择框,并且效果很好。

但是,我想要一个额外的行为:我单击选择框,应勾选 radio2 并启用选择框:

function test(){
    document.getElementById('radio1').checked=false;
    document.getElementById('radio2').checked=true;
    document.getElementById('select').disabled=false;
}

但是,在禁用选择框时,永远不会调用 test() 。 还有其他事件可以做到这一点吗?

另一种解决方案是在选择框上放置透明覆盖层以处理事件(并在启用选择框时隐藏它)。

I have a form with two radiobuttons:

[radio1]   [radio2] [select]

<input type="radio" id="radio1" name="radio" checked/>
<br/>
<input type="radio" id="radio2" name="radio"/>
<select id="select" onmousedown="test()" disabled="disabled">
    <option>aaa</option>
    <option>bbb</option>
</select>

The desired behaviour is that when radio1 is ticked, the selectbox is disabled.
When radio2 is ticked, the user is able to select something from the selectbox (hence enabled).

I have the necessary event code in radio1 and radio2 to handle enabled/disabling the selectbox, and it works nicely.

However, I wanted an additional behaviour: I click the selectbox, radio2 should be ticked and the selectbox enabled:

function test(){
    document.getElementById('radio1').checked=false;
    document.getElementById('radio2').checked=true;
    document.getElementById('select').disabled=false;
}

However, test() never gets called while the selectbox is disabled.
Is there some other event to do this?

The alternative solution is to put a transparent overlay over the selectbox to handle events (and hide it when the selectbox is enabled).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮云落日 2024-10-27 12:32:10

我认为这是预料之中的。禁用的输入元素不会响应鼠标(和其他)事件。您可以尝试使用覆盖解决方案 - 即使选择被禁用,它也应该可以工作。

I think this is expected. Disabled input elements do not respond to mouse (and other) events. You can try with the overlay solution - it should work even if the select is disabled.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文