代码之家  ›  专栏  ›  技术社区  ›  Mona Coder

如何检测文本输入上的退格键更改

  •  0
  • Mona Coder  · 技术社区  · 7 年前

    如何检测文本输入上的任何退格变化?我两者都试过了 .change() 和 .keyup() 但这些都不起作用。

    制作这个

    1-进入 i 在文本框中(列表将被过滤)
    我 到文本框,如 ii
    我 Backspace 甚至可以选择并删除。而有些项目包含 我

    $("#filter").keyup(function(){
    let val = $(this).val()
    if(val==""){
    $('.list-group-item').show('slow'); 
    }
      $(".list-group-item").each(function(){
        $('.list-group-item:not(:contains('+ val +'))').hide('slow'); 
      });
        setTimeout(function(){ 
         if( $(".list-group-item:visible").length ==0){
            $(".alert-danger").removeClass('d-none');
           }
     }, 1000);
     
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <input class="form-control" type="text" id="filter" placeholder="Search" aria-label="Search">
    <ul class="list-group ckeck-div">
      <li class="list-group-item animated">Morbi leo risus</li>
      <li class="list-group-item animated">Porta ac consectetur ac</li>
      <li class="list-group-item animated">Vestibulum at eros</li>
      <li class="list-group-item animated">Morbi leo risus</li>
      <li class="list-group-item animated">Porta ac consectetur ac</li>
      <li class="list-group-item animated">Vestibulum at eros</li>
    </ul>
    2 回复  |  直到 7 年前
        1
  •  0
  •   imvain2    7 年前

    问题不在于退格,而在于你自己 if(val==""){ 这就是问题的根源。我已经修改了你的代码来工作,并切换了你的显示和隐藏

    $(document).on("input","#filter",function(){
    let val = $(this).val();
    
    if(val==""){
    alert('Please enter in a search string');
    }
    
    $('.list-group-item').hide(); 
        $('.list-group-item:contains('+ val +')').show('slow'); 
        setTimeout(function(){ 
         if( $(".list-group-item:visible").length ==0){
            $(".alert-danger").removeClass('d-none');
           }
     }, 1000);
     
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <input class="form-control" type="text" id="filter" placeholder="Search" aria-label="Search">
    <ul class="list-group ckeck-div">
      <li class="list-group-item animated">Morbi leo risus</li>
      <li class="list-group-item animated">Porta ac consectetur ac</li>
      <li class="list-group-item animated">Vestibulum at eros</li>
      <li class="list-group-item animated">Morbi leo risus</li>
      <li class="list-group-item animated">Porta ac consectetur ac</li>
      <li class="list-group-item animated">Vestibulum at eros</li>
    </ul>
        2
  •  -1
  •   imposterSyndrome    7 年前

    https://css-tricks.com/snippets/javascript/javascript-keycodes/ \

    $('.yourinput').on('input',function(e){
            if(e.which == 8 ) {
              ///do whatever you want to do on the input
            }
    

    你也可以在按键上使用