2015-03-11 3 views
1

У меня есть раскрывающийся список, используя плагин jquery Selectize.js. То, что я хочу, это не отображать выпадающие варианты при вставке в поле, но при этом все же открывать капли другими средствами.Selectize.js onFocus callback не работает

У меня установлен «openOnFocus: false», чтобы он не открывал ниспадающее меню, когда он сначала получает фокус, который работает. Но я не хочу, чтобы пользователю приходилось дважды щелкнуть мышью при использовании мыши. Поэтому я попытался настроить обратный вызов onFocus, чтобы проверить, была ли нажата клавиша табуляции, а если нет, то снова дайте ей фокус. OnFocus, похоже, никогда не срабатывает. Я добавил Console.log, чтобы убедиться, что это не так. Любой совет? Есть ли лучший способ сделать это? Благодаря!

Вот мой код.

$("#branch_entry").selectize({  
    hideSelected: true,    
    sortField: "value",    
    openOnFocus: false, 
    onFocus: function() { 
    console.log("focus");          
    var code = e.keyCode || e.which; 
    if (code != 9) { // not tab 
     $("#branch_entry").focus(); 
    }        
    }         
}); 

ответ

1

Я думаю, вы должны обрабатывать click событие во входном элементе selectize и вызвать метод selectize.open().

HTML:

<div id="branch_entry-div"> 
    <select id="branch_entry"> 
    <option value="0">Item 0</option> 
    <option value="1">Item 1</option> 
    <option value="2">Item 2</option> 
    </select> 
</div> 

JavaScript:

$("#branch_entry").selectize({  
    hideSelected: true,    
    sortField: "value",    
    openOnFocus: false 
}); 
$("#branch_entry-div .selectize-input").on('click', function() { 
    $("#branch_entry")[0].selectize.open(); 
}); 

jsFiddle Demo

 Смежные вопросы

  • Нет связанных вопросов^_^