Dojo Select - 默认选择第一个选项

时间:2014-10-14 05:28:02

标签: html-select dijit.form dojo

我的表单上有一个选择框,可以使用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 =&#34;&#34; and value =&#34;&#34;);

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

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

1 个答案:

答案 0 :(得分:5)

dijit/form/Select充当普通选择框元素(简单地说它是<select>的增强形式)。这是默认选择第一个选项的选择框的默认行为。

无论哪种方式,dijit/form/Select窗口小部件都不支持我认为的占位符,也不会在API docs中记录。

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

另一种常见做法(至少使用<select>)是您添加默认的选定和禁用项目,作为占位符,例如:

<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