Dojo:在required = false时为FilteringSelect选择空值

时间:2013-11-23 12:58:28

标签: dojo

请查看此代码:

dojo.require('dijit.form.FilteringSelect');
dojo.require('dojo.store.JsonRest');

dojo.declare('JsonFilteringSelect', dijit.form.FilteringSelect, {
    constructor: function (options) {
        dojo.declare.safeMixin(this, options);
        if (this.url) {
            this.store = new dojo.store.JsonRest({
                target: this.url
            });
        } else {
            console.log('JsonFilteringSelect: options.url is not defined');
        }
    }
});

var getPersonJsonFilteringSelect = new JsonFilteringSelect({
            url: '/person/get',
            name: 'Test',
            title: 'Test title',
            required: false,
            autoComplete:false,
            value: '',
            pageSize:10,
            queryExpr:'${0}'
        }, dojo.byId('select'));

getPersonJsonFilteringSelect.startup();
});

使用案例:假设我的FilteringSelect有20个结果。

  1. 用户选择1 FilteringSelect值。
  2. 此值设置为值 是FilteringSelect。
  3. 但是在用户决定更改此值之后     空值。
  4. 据我所知,因为必需:false FilteringSelect应该允许 设置空值,但事实并非如此。我在这里观察到这种行为:
    1. 用户点击FilteringSelect文本框
    2. 用户清除它
    3. 当用户按下“Tab”或按其他元素点击时 - FilteringSelect自动选择第一个值
  5. 我如何允许用户将空值设置为FilteringSelect?

1 个答案:

答案 0 :(得分:2)

你应该在加载之后(我把它放在开头)但在启动小部件之前,向你的数据存储添加一个空条目(“”或null可能?我知道“”工作)。

FilquireSelect的“必需”问题很奇怪,因为它不允许您选择任意值 - 它必须是数据存储中的条目。然而,如果它不是必需的,它不应该不关心吗?... Dojo有时很奇怪。