33

我有一个包含 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();
    });
4

4 回答 4

54

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

$("#element").on('keyup change', function (){
   // Your stuff...
});
于 2013-04-18T12:52:03.573 回答
11

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

于 2014-07-01T08:54:03.893 回答
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();
});
于 2013-04-18T13:00:04.670 回答
2

如果你想对变化做出反应,你应该使用change.

在某些情况下,keyup 不会进行更改(如 shift)和没有 keyup 的更改(粘贴)的情况。

于 2013-04-18T11:58:19.997 回答