select2 force focus on page load
I am trying to make a select2 box appear in its focused state on page load. I have tried the following:
$('#id').select2('focus');
$('#id').trigger('click');
$('#id').trigger('focus');
Only the first line seems to have any effect, and it does focus the select2 field, however it requires an additional keypress to display the search field, and to allow typing in search string.
Therefore, if you load the page and start typing: "Search", the "S" will open the search box and then the remainder of the keys will be entered into it, so you'll be searching "earch"
According to the Select2 documentation:
$('#id').select2('open');
Should be all you need.
Found under the Programmatic Access section in the documentation.
This works in release 3.4.2. Not sure when it was implemented exactly.
$('#id').select2('focus');
If you use:
$('#id').select2('open');
The select2 is opened and you can type directly for searching.
If you use:
$('#id').select2('open').select2('close');
The focus is set to the created select2 dropdownlist. If you hit Enter
or Ctrl + Arrow down
on your keyboard, you can open it.
Is personally think this is better than:
$('#id').select2('focus');
because you can't really open the select2 dropdownlist with your keyboard.