Ответ 1
Вы можете использовать $.on()
и подключить обработчики .
$("#element").on('keyup change', function (){
// Your stuff...
});
У меня есть страница с 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();
});
Вы можете использовать $.on()
и подключить обработчики .
$("#element").on('keyup change', function (){
// Your stuff...
});
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();
});
Вы можете использовать только событие "вход", если вам не требуется поддержка старых браузеров. Он будет запускаться каждый раз, когда значение изменяется во входном элементе. Вот список поддерживаемых браузеров: https://developer.mozilla.org/en-US/docs/Web/Events/input
Если вы хотите отреагировать на изменение, вы должны использовать change
.
Есть несколько случаев, когда keyup не производит изменения (например, shift) и случаи, когда есть изменения без клавиатуры (вставка).