이 질문에 대한 모든 답변을 읽었으며 해결책이 효과가없는 것 같습니다.
또한 특수 문자로 키 누르기를 트리거해도 전혀 작동하지 않는 느낌이 들었습니다. 누가이 작업을 수행했는지 확인할 수 있습니까?
이 질문에 대한 모든 답변을 읽었으며 해결책이 효과가없는 것 같습니다.
또한 특수 문자로 키 누르기를 트리거해도 전혀 작동하지 않는 느낌이 들었습니다. 누가이 작업을 수행했는지 확인할 수 있습니까?
답변:
키 누르기 또는 키 다운 이벤트를 트리거하려면 다음을 수행하십시오.
var e = jQuery.Event("keydown");
e.which = 50; // # Some key code value
$("input").trigger(e);
jQuery 1.6 이상으로 조금 더 간결 해졌습니다 .
var e = jQuery.Event( 'keydown', { which: $.ui.keyCode.ENTER } );
$('input').trigger(e);
(jQuery UI를 사용하지 않는 경우 적절한 키 코드를 대신 사용하십시오.)
.trigger(jQuery.Event('name', props))
. jsfiddle.net/9ggmrbpd/1 예제를 참조하십시오. 트리거 된 이벤트의 특성은 그대로 전달됩니다. 소스 코드 : github.com/jquery/jquery/blob/master/src/event.js#L739
실제 답변에는 keyCode가 포함되어야합니다.
var e = jQuery.Event("keydown");
e.which = 50; // # Some key code value
e.keyCode = 50
$("input").trigger(e);
jQuery의 웹 사이트에 어떤 키 코드가 정규화되어 있다고 말하더라도 잘못 잘못 판단됩니다. e.which 및 e.keyCode에 대한 표준 크로스 브라우저 검사를 수행하는 것이 항상 가장 안전하며이 경우에는 둘 다 정의하십시오.
e.keyCode = e.which = 50;
한 줄로 더 좋을 것입니다. :)
keyCode
것이 효과가 없다는 것을 알았습니다 . 모두를 설정했다하면을 작동하도록
좋아, 이것으로 작동하는 나를 위해 ...
var e2key = function(e) {
if (!e) return '';
var event2key = {
'96':'0', '97':'1', '98':'2', '99':'3', '100':'4', '101':'5', '102':'6', '103':'7', '104':'8', '105':'9', // Chiffres clavier num
'48':'m0', '49':'m1', '50':'m2', '51':'m3', '52':'m4', '53':'m5', '54':'m6', '55':'m7', '56':'m8', '57':'m9', // Chiffres caracteres speciaux
'65':'a', '66':'b', '67':'c', '68':'d', '69':'e', '70':'f', '71':'g', '72':'h', '73':'i', '74':'j', '75':'k', '76':'l', '77':'m', '78':'n', '79':'o', '80':'p', '81':'q', '82':'r', '83':'s', '84':'t', '85':'u', '86':'v', '87':'w', '88':'x', '89':'y', '90':'z', // Alphabet
'37':'left', '39':'right', '38':'up', '40':'down', '13':'enter', '27':'esc', '32':'space', '107':'+', '109':'-', '33':'pageUp', '34':'pageDown' // KEYCODES
};
return event2key[(e.which || e.keyCode)];
};
var page5Key = function(e, customKey) {
if (e) e.preventDefault();
switch(e2key(customKey || e)) {
case 'left': /*...*/ break;
case 'right': /*...*/ break;
}
};
$(document).bind('keyup', page5Key);
$(document).trigger('keyup', [{preventDefault:function(){},keyCode:37}]);
현재 커서와 텍스트 선택을 고려해야하는 경우 ...
Chrome의 AngularJS 앱에서는 작동하지 않았습니다. Nadia가 원래 의견에서 지적했듯이 문자는 입력 필드에 표시되지 않습니다 (적어도 내 경험이었습니다). 또한 이전 솔루션에서는 입력 필드의 현재 텍스트 선택 사항을 고려하지 않았습니다. 멋진 라이브러리 jquery-selection 을 사용해야했습니다 .
여러 입력 필드를 채우는 사용자 정의 온 스크린 숫자 키패드가 있습니다. 나는 ...
흐림시 현재 텍스트 선택 저장 (시작 및 중지)
var pos = element.selection('getPos')
lastFocus.pos = { start: pos.start, end: pos.end}
내 키패드의 버튼을 누르면 :
lastFocus.element.selection( 'setPos', lastFocus.pos)
lastFocus.element.selection( 'replace', {text: myKeyPadChar, caret: 'end'})
당신이 사용할 수있는 한 줄로하고 싶습니다
$("input").trigger(jQuery.Event('keydown', { which: '1'.charCodeAt(0) }));
이 문서 처럼 달성 할 수 있습니다
$('input').trigger("keydown", {which: 50});