- prevent submit when selecting value with enter key
- prevent tabbing in next element if select options are shown
This commit is contained in:
parent
5ee2c4e3cf
commit
69ebe8e348
1 changed files with 14 additions and 4 deletions
|
@ -52,8 +52,9 @@ class App.SearchableSelect extends Spine.Controller
|
||||||
switch event.keyCode
|
switch event.keyCode
|
||||||
when 40 then @nudge event, 1 # down
|
when 40 then @nudge event, 1 # down
|
||||||
when 38 then @nudge event, -1 # up
|
when 38 then @nudge event, -1 # up
|
||||||
when 13 then @selectHighlightedItem() # enter
|
when 13 then @onEnter event
|
||||||
when 27 then @onEscape()
|
when 27 then @onEscape()
|
||||||
|
when 9 then @onTab event
|
||||||
|
|
||||||
onEscape: ->
|
onEscape: ->
|
||||||
@toggle() if @isOpen
|
@toggle() if @isOpen
|
||||||
|
@ -78,9 +79,18 @@ class App.SearchableSelect extends Spine.Controller
|
||||||
@input.val event.currentTarget.textContent.trim()
|
@input.val event.currentTarget.textContent.trim()
|
||||||
@shadowInput.val event.currentTarget.getAttribute('data-value')
|
@shadowInput.val event.currentTarget.getAttribute('data-value')
|
||||||
|
|
||||||
selectHighlightedItem: ->
|
onTab: (event) ->
|
||||||
|
return if not @isOpen
|
||||||
|
event.preventDefault()
|
||||||
|
|
||||||
|
onEnter: (event) ->
|
||||||
if not @isOpen
|
if not @isOpen
|
||||||
return @toggle()
|
if @shadowInput.val() is ''
|
||||||
|
event.preventDefault()
|
||||||
|
@toggle()
|
||||||
|
return
|
||||||
|
|
||||||
|
event.preventDefault()
|
||||||
|
|
||||||
@input.val @values.filter('.is-active').text().trim()
|
@input.val @values.filter('.is-active').text().trim()
|
||||||
@shadowInput.val @values.filter('.is-active').attr('data-value')
|
@shadowInput.val @values.filter('.is-active').attr('data-value')
|
||||||
|
|
Loading…
Reference in a new issue