Dojo Select-默认情况下选择第一个选项

A N*_*kar 3 dojo html-select dijit.form

我的表单上有一个选择框,正在使用addOption进行显示。下面的代码一样

storeData = response.myData;
var select = dijit.byId('mySelect');
select.addOption(storeData.items);
Run Code Online (Sandbox Code Playgroud)

选择框的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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

g00*_*00b 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>
Run Code Online (Sandbox Code Playgroud)

演示:JSFiddle