Dojo:如何禁用dijit.form.FilteringSelect选项

时间:2013-11-18 11:10:06

标签: javascript html css dojo

我正在尝试禁用dijit / Form / FilteringSelect中的选项。这是代码

 <select id="filtSelect" dojoType="dijit.form.FilteringSelect">  
        <option disabled="disabled">Select</option>  
        <option value="1">One</option>  
        <option value="2">Two</option>  
        <option value="3">Three</option>  
  </select>

请帮帮我。

3 个答案:

答案 0 :(得分:0)

你可以这样做:( Vers.1.9)

<select data-dojo-type="dijit/form/" id="count" name="count">
    <option disabled="disabled">Select</option>  
    <option value="1">One</option>  
    <option value="2">Two</option>  
    <option value="3">Three</option>
</select>

以上是我上面例子的完整小提琴(Thomas Upton编辑):http://jsfiddle.net/tupton/266C4/

这里是dojo的引用:http://dojotoolkit.org/reference-guide/1.9/dijit/form/FilteringSelect.html?highlight=filteringselect

在1.6 Vers中它必须看起来像:

<script>
  dojo.require("dijit.form.FilteringSelect");
</script>

<body class="claro">
 <select dojoType="dijit.form.FilteringSelect" id="fruit" name="fruit">
        <option value="AP" disabled>
            Apples
        </option>
        <option value="OR" selected>
            Oranges
        </option>
        <option value="PE">
            Pears
        </option>
    </select>
</body>

此版本的小提琴:http://jsfiddle.net/Q4zw6/

加载dijit.form.filteringSelect实例以使用它非常重要。

此致,Miriam

答案 1 :(得分:0)

我不相信您可以禁用dijit/form/FilteringSelect的选项,因为它是基于商店的,并且应该让用户输入任何文本。

有一个名为displayedValue的属性,您可以使用它来设置您想要的任何内容。但是,对于FilteringSelect,任何不是选项的文本都会被标记为错误输入,如以下代码和this jsfiddle所示。

<select data-dojo-type="dijit/form/FilteringSelect" data-dojo-props="displayedValue: 'Select'" id="count" name="count">
        <option value="1">One</option>  
        <option value="2">Two</option>  
        <option value="3">Three</option>
</select>

您可以以完全相同的方式使用dijit/form/ComboBox; FilteringSelectComboBox之间的区别在于后者允许任何输入。 See the documentation for more information

答案 2 :(得分:0)

问题在于FilteringSelect依赖于dojo数据存储,正如其他人所指出的那样。因此,如果您不手动创建它,它将在幕后发生,您只是不知道如何引用它。但是第二个想法,看看API,我注意到FilteringSelect有一个名为store的属性。

因此,您需要自己创建数据存储&amp;用它初始化FilteringSelect(http://dojotoolkit.org/reference-guide/1.9/dijit/form/FilteringSelect.html)或使用dijit的byId检索它,然后访问“store”属性。

然后,操纵该数据存储。如果要在之后恢复该选项,可能会在删除该选项之前存储临时副本。如果你查找数据存储我肯定删除一个选项是微不足道的。有时使用小部件时,您需要触发重新渲染方法以使其更新后(您通常可以在小部件的API中找到一些方法,有时“重置”),尽管我相信它可能会在商店中看到它们更聪明。