Javascript jQuery:我需要keyUp和change事件吗?

Javascript jQuery:我需要keyUp和change事件吗?,javascript,jquery,Javascript,Jquery,我有一页有两张表格;每个表单都有一个输入文本字段 在第一种形式的输入文本中找到的值必须与在第二种形式的输入文本中找到的值相同 当值更改时,其他输入文本字段也会修改其值 我应该同时使用onkeyup和onchange事件吗 如果没有,哪一个是正确的 我这样问是因为我有两个帖子请求,我想这就是原因 $('input.searchbox').keyup( function(){ $('input.txtfieldsearch').val($('input.searchbox').v

我有一页有两张表格;每个表单都有一个输入文本字段

在第一种形式的输入文本中找到的值必须与在第二种形式的输入文本中找到的值相同

当值更改时,其他输入文本字段也会修改其值

我应该同时使用
onkeyup
onchange
事件吗

如果没有,哪一个是正确的

我这样问是因为我有两个帖子请求,我想这就是原因

   $('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();
    });

如果要对更改做出反应,应使用
change

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

您可以使用函数并附加多个处理程序

$("#element").on('keyup change', function (){
   // Your stuff...
});
大多数情况下,当用户按下一个键然后释放时会触发。如果用户使用浏览器的自动完成功能,则可能发生这种情况。您应该使用该方法捕获这两个事件,以防万一:

$('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();
});

如果不需要为旧浏览器提供支持,则只能使用“输入”事件。每次输入元素中的值发生更改时,都会触发它。以下是受支持的浏览器列表:

但哪一个浏览器是正确的?您希望值何时更新
change
keyup
是不同的事件,您可能会同时使用它们。您是否注意到您在
搜索框中调用了两次
listViewUpdate
?是的;第一个用于keyup;第二个是变化不,我的意思是每个事件两次。您还将触发
txtfieldsearch
上的处理程序,该处理程序将再次执行
listViewUpdate
。这是否意味着如果我使用了
keyup
change
,我的操作方式是正确的?keyup很少进行更改<代码>更改
仅在模糊输入字段时才会触发。它们执行不同的操作。你应该分别试一试,看看他们什么时候开火,看看哪个是你需要的。在某些情况下,两者都可能是正确的。这会调用两次事件回调。我从未找到一个解决方案不调用两次事件回调。我最终决定使用css从我的输入中删除递增箭头,在我的例子中强制使用键控:
/*Chrome,Safari,Edge,Opera*/input::-webkit外部旋转按钮,input:-webkit内部旋转按钮{-webkit外观:无;边距:0;}/*Firefox*/input[type=number]{-moz外观:textfield;}