Prevent the Return key from submitting while composing using an IME
Based on the following article by Michael Stum: https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/
This commit is contained in:
parent
445d9ebe2a
commit
d13f1cf7b8
|
@ -13,8 +13,14 @@ $(document).on "click", "button[name=ab-comments]", ->
|
||||||
commentBox.slideUp()
|
commentBox.slideUp()
|
||||||
btn[0].dataset.state = 'hidden'
|
btn[0].dataset.state = 'hidden'
|
||||||
|
|
||||||
|
isComposing = false
|
||||||
|
compositionHasJustEnded = false
|
||||||
|
|
||||||
$(document).on "keyup", "input[name=ab-comment-new]", (evt) ->
|
$(document).on "keyup", "input[name=ab-comment-new]", (evt) ->
|
||||||
|
if isComposing or compositionHasJustEnded
|
||||||
|
compositionHasJustEnded = false
|
||||||
|
return
|
||||||
|
|
||||||
input = $(this)
|
input = $(this)
|
||||||
aid = input[0].dataset.aId
|
aid = input[0].dataset.aId
|
||||||
ctr = $("span#ab-comment-charcount-#{aid}")
|
ctr = $("span#ab-comment-charcount-#{aid}")
|
||||||
|
@ -49,6 +55,18 @@ $(document).on "keyup", "input[name=ab-comment-new]", (evt) ->
|
||||||
complete: (jqxhr, status) ->
|
complete: (jqxhr, status) ->
|
||||||
input.removeAttr 'disabled'
|
input.removeAttr 'disabled'
|
||||||
|
|
||||||
|
# IME Return key handling
|
||||||
|
$(document).on "compositionstart", "input[name=ab-comment-new]", (evt) ->
|
||||||
|
isComposing = true
|
||||||
|
|
||||||
|
$(document).on "compositionend", "input[name=ab-comment-new]", (evt) ->
|
||||||
|
isComposing = false
|
||||||
|
compositionHasJustEnded = true
|
||||||
|
|
||||||
|
$(document).on "keydown", "input[name=ab-comment-new]", (evt) ->
|
||||||
|
# 229 is a special keyCode for events processed by an IME
|
||||||
|
# https://developer.mozilla.org/en-US/docs/Web/API/Document/keyup_event
|
||||||
|
compositionHasJustEnded = false unless event.which == 229
|
||||||
|
|
||||||
# character count
|
# character count
|
||||||
$(document).on "input", "input[name=ab-comment-new]", (evt) ->
|
$(document).on "input", "input[name=ab-comment-new]", (evt) ->
|
||||||
|
|
Loading…
Reference in New Issue