【问题标题】:Dojo and/or javascript: onclick event for the scrollbar in a multiselectDojo 和/或 javascript:多选中滚动条的 onclick 事件
【发布时间】:2013-09-21 01:52:24
【问题描述】:

我在一个页面上有一个多选,并且我已经对其进行了设置,以便在单击其中一个选项时禁用页面上的另一个选择。我遇到的问题是即使用户只是单击多选的滚动条,客户也希望禁用其他选择。我在选择标签上有 onclick 事件。如果用户单击多选的滚动条,是否会触发脚本?

<select name="disable_this" id="disable_this" data-dojo-type="dijit.form.FilteringSelect" data-dojo-props="maxHeight:300" style="width:500px; overflow:hidden;" onclick="javascript:disableOtherSelect('thisone_multiple','disable_this');">
                    <option selected="selected">Select</option>
                    <option>first</option>
                    <option>second</option>
                    <option>third</option>
                </select>



<select name="thisone_multiple" id="thisone_multiple" data-dojo-type="dijit.form.MultiSelect" multiple="multiple" data-dojo-props="maxHeight:300" style="width:500px; overflow:hidden;" onclick="javascript:disableOtherSelect('disable_this','thisone_multiple');">
                <option selected="selected">Select</option>
                    <option>C - Example Account Name 1</option>
                    <option>A - Example Account Name 2</option>
                    <option>B - Example Account Name 3</option>
                    <option>ZZ - Example Account Name 4</option>
                    <option>AA - Example Account Name 5</option>
                </select>


function disableOtherSelect(layer,layer2){
        //disable the other one based on arguments from the onchange event
      dijit.byId(layer2).set('disabled', false);
      dijit.byId(layer).set('disabled', true);


    };

更新

我创建了一个简单的 jsfiddle,它显示了一个选择与一个多选的 onclick。如您所见,单击多选上的滚动条不会触发脚本,但单击选择上的箭头会触发脚本:

http://jsfiddle.net/txujL/2/

【问题讨论】:

  • 我认为这里首先需要解决 UX 问题。通过交互(但不选择)另一个表单元素来禁用表单元素的论点是什么?
  • 可能是因为客户看到了相反的情况。对于不是多选的那个(它是一个常规的 dojo 下拉选择),只要单击下拉箭头,多选就会被禁用。

标签: javascript select dojo onclick disabled-input


【解决方案1】:

我找到了一个更好的方法来做到这一点。我没有禁用表单输入,而是将它们设置为当单击一个半透明 div 时,会出现在另一个上,从而有效地防止用户在“禁用”的那个中进行选择。

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 2011-11-05
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多