【问题标题】:Dojo Select - first option getting selected by defaultDojo Select - 默认选择第一个选项
【发布时间】:2014-10-14 05:28:01
【问题描述】:

我的表单上有一个使用 addOption 显示的选择框。下面的代码相同

storeData = response.myData;
var select = dijit.byId('mySelect');
select.addOption(storeData.items);

选择框的HTML声明

<select id="mySelect" data-dojo-type="dijit/form/Select" data-dojo-attach-point="mySelect" data-dojo-props="name:'mySelect', placeHolder: 'Select a value', value:''"></select>

在 storeData 中,我返回 JSON 对象列表,包括一个空白选项。 (label="" and value="");

我希望在未选择任何选项时显示占位符文本。但默认情况下,第一个选项(即空白值选项)被选中,因此占位符文本没有显示。如果我从选项列表中删除空白值选项,则默认选择之后的选项。

有什么方法可以将选择设置为无。有这个问题的指针吗?

【问题讨论】:

    标签: html-select dijit.form dojo


    【解决方案1】:

    dijit/form/Select 充当普通的选择框元素(简单地说它是&lt;select&gt; 的增强形式)。默认情况下选择第一个选项是这种选择框的默认行为。

    无论哪种方式,我认为dijit/form/Select 小部件不支持占位符,API docs 中也没有记录。

    作为替代方案,您可以使用dijit/form/ComboBoxdijit/form/FilteringSelect 小部件,它们都支持placeHolder 属性。

    另一种常见做法(至少对于&lt;select&gt;)是添加一个默认选中和禁用的项目,作为占位符,例如:

    <select name="select1" data-dojo-type="dijit/form/Select">
        <option disabled="disabled" selected="selected" value="">- Select a state -</option>
        <option value="TN">Tennessee</option>
        <option value="VA">Virginia</option>
        <option value="WA">Washington</option>
        <option value="FL">Florida</option>
        <option value="CA">California</option>
    </select>
    

    演示:JSFiddle

    【讨论】:

    • 感谢您的快速回复。我考虑过这些选项,但我希望下拉菜单只能选择(应该禁用过滤或键控),所以我不得不选择选择框。我们可以在 Combobox 或 FilteringSelect 中禁止键值吗?
    • 嗯,我不认为这是可能的。另一种方法是您可以禁用dijit/form/Select 的第一个选项。
    猜你喜欢
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 2020-09-28
    • 2021-06-27
    • 1970-01-01
    相关资源
    最近更新 更多