jQuery:我是否需要keyUp和更改事件?

Ion*_*ian 27 javascript jquery

我有一个包含2个表格的页面; 每个表单都有一个输入文本字段;

在第一个表单的输入文本中找到的值必须与第二个表单的输入文本中找到的值相同;

值变为chages时,另一个输入文本字段也会修改其值;

我应该同时使用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();
    });
Run Code Online (Sandbox Code Playgroud)

小智 45

您可以使用$.on()函数并附加多个处理程序.

$("#element").on('keyup change', function (){
   // Your stuff...
});
Run Code Online (Sandbox Code Playgroud)

  • 这将两次调用事件回调。 (2认同)

Sei*_*Sys 11

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();
});
Run Code Online (Sandbox Code Playgroud)


小智 10

如果您不需要为旧版浏览器提供支持,则只能使用"输入"事件.每当输入元素中的值发生变化时,它都会被触发.下面是支持的浏览器的列表:https://developer.mozilla.org/en-US/docs/Web/Events/input