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

时间:2013-04-18 11:53:14

标签: 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();
    });

4 个答案:

答案 0 :(得分:41)

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

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

答案 1 :(得分: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();
});

答案 2 :(得分:9)

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

答案 3 :(得分:2)

如果您想对更改做出反应,则应使用change

在某些情况下,密钥组不能进行更改(如移位)以及没有密钥更改(粘贴)的情况。