Подтвердить что ты не робот

JQuery: Мне нужны и keyUp, и события изменений?

У меня есть страница с 2 формами; каждая форма имеет текстовое поле ввода;

Значение, найденное во входном тексте 1-й формы, должно совпадать со значением, найденным во входном тексте 2-й формы;

Когда значение изменяет, другое текстовое поле ввода также изменяет его значение;

Следует ли использовать события onkeyup и onchange?

Если нет, то какой из них правильный?

Я спрашиваю об этом, потому что он швы, что у меня есть 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();
    });
4b9b3361

Ответ 1

Вы можете использовать $.on() и подключить обработчики .

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

Ответ 2

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

Ответ 3

Вы можете использовать только событие "вход", если вам не требуется поддержка старых браузеров. Он будет запускаться каждый раз, когда значение изменяется во входном элементе. Вот список поддерживаемых браузеров: https://developer.mozilla.org/en-US/docs/Web/Events/input

Ответ 4

Если вы хотите отреагировать на изменение, вы должны использовать change.

Есть несколько случаев, когда keyup не производит изменения (например, shift) и случаи, когда есть изменения без клавиатуры (вставка).