簡體   English   中英

jQuery:我需要 keyUp 和 change 事件嗎?

[英]jQuery: Do I need both keyUp and change events?

我有一個包含 2 個表單的頁面; 每個表單都有一個輸入文本字段;

在第一種形式的輸入文本中找到的值必須與在第二種形式的輸入文本中找到的值相同;

當值發生變化時,其他輸入文本字段也會修改其值;

我應該同時使用onkeyuponchange事件嗎?

如果不是,哪一種是正確使用的?

我問這個是因為我有 2 個帖子請求,我認為這就是原因。

   $('input.searchbox').keyup( function(){
       $('input.txtfieldsearch').val($('input.searchbox').val());
       listViewUpdate();
       $('input.txtfieldsearch').trigger("keyup");
   });
                
    $('input.txtfieldsearch').keyup( function(){
       $('input.searchbox').val($('input.txtfieldsearch').val());
       listViewUpdate();
    });
                
   $('input.searchbox').change( function(){
       $('input.txtfieldsearch').val($('input.searchbox').val());
       listViewUpdate();
       $('input.txtfieldsearch').trigger("change");
   });
                
    $('input.txtfieldsearch').change( function(){
       $('input.searchbox').val($('input.txtfieldsearch').val());
       listViewUpdate();
    });

您可以使用$.on()函數並附加多個處理程序

$("#element").on('keyup change', function (){
   // Your stuff...
});

onkeyup主要在用戶按下一個鍵然后松開時觸發。 如果用戶使用瀏覽器的自動完成功能,則可能會發生onchange 您應該使用.on()方法來捕獲這兩個事件,以防萬一:

$('input.searchbox').on('keyup change', function(e){
    $('input.txtfieldsearch').val($('input.searchbox').val());
    listViewUpdate();
    $('input.txtfieldsearch').trigger(e.type);
});

$('input.txtfieldsearch').on('keyup change', function(){
    $('input.searchbox').val($('input.txtfieldsearch').val());
    listViewUpdate();
});

如果您不需要為舊瀏覽器提供支持,則只能使用“輸入”事件。 每次輸入元素中的值更改時都會觸發它。 以下是支持的瀏覽器列表: https : //developer.mozilla.org/en-US/docs/Web/Events/input

如果你想對變化做出反應,你應該使用change

在某些情況下,keyup 不會進行更改(例如 shift),而有時會在沒有 keyup 的情況下進行更改(粘貼)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM