Фильтрация дижитаВыберите фокус

У меня есть несколько FilteringSlect на моей странице, кроме первой, остальные отключены. При выборе значения во-первых, включается 2-й выбор фильтрации и так далее. Я могу достичь этого. Когда пользователь выбирает значение в первом фильтрующем элементе, а затем нажимает на вкладку, чтобы перейти к следующему элементу выбора, он включается, но пользователь должен щелкнуть мышью по 2-му варианту выбора, чтобы ввести значение. У меня есть ссылка jsfiddle

`http://jsfiddle.net/qpue91L9/75/` 

который демонстрирует проблему. Что я хочу, так это как только пользовательские вкладки из первого фильтра выбирают следующую, и без лишнего щелчка, пользователь должен иметь возможность выбрать новое значение, введя текст в поле выбора фитинга.

2 ответа

Я думаю, у меня все получилось [Рабочая скрипка][1]

 [1]: http://jsfiddle.net/qpue91L9/125/

Также как предложено, предоставляя полный рабочий код

HTML-код

<input id="stateSelect">
<input id="stateSelect1">
<input id="stateSelect2">

Код JS

require([
        "dojo/store/Memory", "dojo/on","dijit/form/FilteringSelect", "dojo/domReady!",'dijit/registry',"dijit/focus","dojo/dom"
    ], function(Memory, on,FilteringSelect,ready,registry,focusUtil,dom){
        var stateStore = new Memory({
            data: [
                {name:"Alabama", id:"AL", timeStamp:"1211753600"},
                {name:"Alaska", id:"AK", timeStamp:"1211753601"},
                {name:"American Samoa", id:"AS", timeStamp:"1211753602"},
                {name:"Arizona", id:"AZ", timeStamp:"1211753603"},
                {name:"Arkansas", id:"AR", timeStamp:"1211753604"},
                {name:"Armed Forces Europe", id:"AE", timeStamp:"1211753605"},
                {name:"Armed Forces Pacific", id:"AP", timeStamp:"1211753606"},
                {name:"Armed Forces the Americas", id:"AA", timeStamp:"1211753607"},
                {name:"California", id:"CA", timeStamp:"1211753608"},
                {name:"Colorado", id:"CO", timeStamp:"1211753609"},
                {name:"Connecticut", id:"CT", timeStamp:"1211753610"},
                {name:"Delaware", id:"DE", timeStamp:"1211753611"}
            ], idProperty: "timeStamp"
        });

        var filteringSelect = new FilteringSelect({
            id: "stateSelect",
            store: stateStore,
             tabIndex: 1,
            searchAttr: "name",
            identifier: "timeStamp",

        }, "stateSelect").startup();
        var filteringSelect1 = new FilteringSelect({
            id: "stateSelect1",
            name: "state",
             tabIndex: 2,
            store: stateStore,
            searchAttr: "name",
            identifier: "timeStamp" ,
            disabled:true,
        }, "stateSelect1").startup();
        var filteringSelect2 = new FilteringSelect({
            id: "stateSelect2",
            name: "state",
             tabIndex: 3,
            store: stateStore,
            searchAttr: "name",
            identifier: "timeStamp",
            disabled:true,        
        }, "stateSelect2").startup();

        on(dijit.byId("stateSelect"),"KeyPress",function(evt){
        dijit.byId("stateSelect1").set("disabled",false);

        });
         on(dijit.byId("stateSelect"),"change",function(evt){
        dijit.byId("stateSelect1").set("disabled",false);
         dijit.byId("stateSelect1").focus();

        });
        on(dijit.byId("stateSelect1"),"KeyPress",function(evt){
        dijit.byId("stateSelect2").set("disabled",false);

        });
         on(dijit.byId("stateSelect1"),"change",function(evt){
        dijit.byId("stateSelect2").set("disabled",false);
         dijit.byId("stateSelect2").focus();

        });


    });

Я проверил ваш пример и получил его работать несколько....

Обновить пример

В основном я добавил это:

require([ "dijit/focus", "dojo/dom", "dojo/domReady!" ], function(focusUtil, dom){
    var domObj = dom.byId("stateSelect1");
    focusUtil.focus(domObj);
});

а также добавил tabIndex свойство для каждого выбранного объекта. Проблема в том, что он работает только тогда, когда вы фактически выбираете элемент из списка, нажимая на него. Если используется вкладка, то она не работает. Возможно, вы могли бы использовать этот пример и перехватить событие табуляции, чтобы оно работало так, как вы этого хотите.

Другие вопросы по тегам