一段时间以来一直在尝试解决这个问题。我的表单中有大量 Dojo Filtering Select 元素。我需要他们有一个空白选项,默认情况下应选择该选项。这是我想要模拟的一个示例(正常的 <select> 结构):

<select>
    <option value="">-</option>
    <option value="foo">Bar</option>
</select>

目前,当我加载具有上述选项设置的过滤选择时,没有选择任何元素。这反过来会禁用表单提交。这对于我的最终用户来说完全无法使用,因为他们不知道为什么表单不起作用。选择甚至不是必填字段。


问题在于FilteringSelect存储数据的方式。它将它们保存在需要标识符和标签的数据存储中。因此,您无法完全模拟普通选择的功能。

您可以通过在选项中放置一个值为“XXXX”(或其他假值)的假项目来“解决”这个问题。

<select>
    <option value="XXXX">-</option>
    <option value="foo">Bar</option>
</select>

这种拼凑的一个缺点是您需要更改验证函数来查找这个假值(而不是空值)。

我在 jsbin.com 上设置了一个测试,您可以在其中看到它的实际情况。