복붙노트

[JQUERY] jQuery로 트리거 키 누르기 이벤트에 확실한 방법

JQUERY

jQuery로 트리거 키 누르기 이벤트에 확실한 방법

해결법


  1. 1.당신이 키를 누를 때 또는를 keyDown 이벤트를 트리거 할 경우 모두 당신이해야 할 것입니다 :

    당신이 키를 누를 때 또는를 keyDown 이벤트를 트리거 할 경우 모두 당신이해야 할 것입니다 :

    var e = jQuery.Event("keydown");
    e.which = 50; // # Some key code value
    $("input").trigger(e);
    

  2. 2.이제 jQuery를 1.6로 약간 더 간결 :

    이제 jQuery를 1.6로 약간 더 간결 :

    var e = jQuery.Event( 'keydown', { which: $.ui.keyCode.ENTER } );
    
    $('input').trigger(e);
    

    (대신 jQuery를 UI, 적절한 키 코드의 서브을 사용하지 않는 경우.)


  3. 3.진짜 대답은 키 코드를 포함한다 :

    진짜 대답은 키 코드를 포함한다 :

    var e = jQuery.Event("keydown");
    e.which = 50; // # Some key code value
    e.keyCode = 50
    $("input").trigger(e);
    

    jQuery의 웹 사이트가 정상화되는 코드와 키 코드 있다고하더라도 그들은 매우 심하게 착각. 그것은 e.which 및 e.keyCode과 단지 모두 정의이 경우 표준 브라우저 간 검사를 수행하는 것이 가장 안전합니다.


  4. 4.당신이 너무 jQuery를 UI를 사용하는 경우는 다음과 같이 할 수 있습니다 :

    당신이 너무 jQuery를 UI를 사용하는 경우는 다음과 같이 할 수 있습니다 :

    var e = jQuery.Event("keypress");
    e.keyCode = $.ui.keyCode.ENTER;
    $("input").trigger(e);
    

  5. 5.나는의 keyup 작업을했다.

    나는의 keyup 작업을했다.

    $("#id input").trigger('keyup');
    

  6. 6.좋아,이와 나를 위해 그 일 ...

    좋아,이와 나를 위해 그 일 ...

    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}]); 
    

  7. 7.혹시 현재 커서 및 텍스트 선택 고려해야 할 ...

    혹시 현재 커서 및 텍스트 선택 고려해야 할 ...

    이 크롬에 AngularJS와 앱 나를 위해 작동하지 않았다. 나디아는 원래의 의견에 지적한 것처럼, 문자는 (내 경험이었다 적어도) 입력 필드에 결코 볼 수 있습니다. 또한, 이전 솔루션은 계정에 입력 필드의 현재 텍스트 선택을하지 않습니다. 나는 멋진 라이브러리 JQuery와 선택을 사용했다.

    나는 사용자 지정 화면에 숫자 키패드가 여러 입력 필드에서 채 웁니다. 나는에 있었다 ...


  8. 8.단일 라인에서 그것을하고 싶은 당신은 사용할 수 있습니다

    단일 라인에서 그것을하고 싶은 당신은 사용할 수 있습니다

    $("input").trigger(jQuery.Event('keydown', { which: '1'.charCodeAt(0) }));
    

  9. 9.CONSOLE.LOG (대신 String.fromCharCode (event.charCode));

    CONSOLE.LOG (대신 String.fromCharCode (event.charCode));

    필요없이 내가 추측 문자를 매핑합니다.


  10. 10.그것은이 문서처럼 수행 할 수 있습니다

    그것은이 문서처럼 수행 할 수 있습니다

    $('input').trigger("keydown", {which: 50});
    
  11. from https://stackoverflow.com/questions/832059/definitive-way-to-trigger-keypress-events-with-jquery by cc-by-sa and MIT license