복붙노트

[JQUERY] jQuery : 키 누르면 백 스페이스가 화재하지 않습니까?

JQUERY

jQuery : 키 누르면 백 스페이스가 화재하지 않습니까?

해결법


  1. 1.KeyPress 대신 KeyUp을 사용하십시오. 이것은 사용자가 무언가를 누를 때 모든 키 코드를 가져옵니다.

    KeyPress 대신 KeyUp을 사용하십시오. 이것은 사용자가 무언가를 누를 때 모든 키 코드를 가져옵니다.


  2. 2.나는 이것을 자신을 가로 질러왔다. 나는 그것을 사용 했으므로 조금 다르지만 나는 이것을했다 :

    나는 이것을 자신을 가로 질러왔다. 나는 그것을 사용 했으므로 조금 다르지만 나는 이것을했다 :

     $('#element').on('keypress', function() {
       //code to be executed
     }).on('keydown', function(e) {
       if (e.keyCode==8)
         $('element').trigger('keypress');
     });
    

    여기에 내 일을 추가하십시오. 나는 사용자가 입력 한 SSN을 삭제해야했습니다. 그래서 jQuery 에서이 작업을 수행했습니다.

      $(this).bind("keydown", function (event) {
            // Allow: backspace, delete
            if (event.keyCode == 46 || event.keyCode == 8) 
            {
                var tempField = $(this).attr('name');
                var hiddenID = tempField.substr(tempField.indexOf('_') + 1);
                $('#' + hiddenID).val('');
                $(this).val('')
                return;
            }  // Allow: tab, escape, and enter
            else if (event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
            // Allow: Ctrl+A
            (event.keyCode == 65 && event.ctrlKey === true) ||
            // Allow: home, end, left, right
            (event.keyCode >= 35 && event.keyCode <= 39)) {
                // let it happen, don't do anything
                return;
            }
            else 
            {
                // Ensure that it is a number and stop the keypress
                if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) &&       (event.keyCode < 96 || event.keyCode > 105)) 
                {
                    event.preventDefault();
                }
            }
        });
    

  3. 3.입력 사용 변경시에만 이벤트를 실행하려면 다음을 수행하십시오.

    입력 사용 변경시에만 이벤트를 실행하려면 다음을 수행하십시오.

    $('.s').bind('input', function(){
      console.log("search!");
      doSearch();
    });
    

  4. 4..keypress ()에 대한 jQuery 문서에 따르면 인쇄가 아닌 문자가 없으므로 백 스페이스가 키 프레스에서 작동하지 않지만 keydown 및 keyup에 찍습니다.

    .keypress ()에 대한 jQuery 문서에 따르면 인쇄가 아닌 문자가 없으므로 백 스페이스가 키 프레스에서 작동하지 않지만 keydown 및 keyup에 찍습니다.

    일부 인스턴스에서는 Keyup이 필요하지 않거나 다른 바람직하지 않은 효과가 있지 않으므로,이를 처리하는 한 가지 방법은 KeyDown을 사용하여 모든 키 입력을 잡을 다음 짧은 간격의 시간 초과를 설정하여 키를 입력 한 다음 처리를 수행합니다. 거기에.

    jQuery(el).keydown( function() { 
        var that = this; setTimeout( function(){ 
               /** Code that processes backspace, etc. **/ 
         }, 100 );  
     } );
    
  5. from https://stackoverflow.com/questions/4690330/jquery-keypress-backspace-wont-fire by cc-by-sa and MIT license