2009-07-02 3 views
5

в html и javascript, я могу использовать keyup, focus, blur, чтобы обнаруживать большую часть изменений содержимого в текстовом вводе, однако, если пользователь делает копию и вставляет в текстовый ввод, как я могу зафиксировать это изменение? Проблема здесь в том, что вход уже находится в фокусе, когда пользователь вставляет его в него.обнаружение изменений в текстовом поле ввода с использованием jquery/javascript

ответ

3

текстовое поле имеет событие OnChange, которое срабатывает, когда a) текстовое поле теряет фокус, а значение в текстовом поле изменилось.

+0

, к сожалению, это не работает для вставки, потому что фокус не теряется, когда пользователь вставляет что-то в текстовое поле – user121196

+0

вы находитесь не поймав PASTE, вы поймете, что значение было изменено, когда пользователь покидает текстовое поле. –

4
$("#myinput").change(function(){ 
    // whatever you need to be done on change of the input field 
}); 

// Trigger change if the user type or paste the text in the field 
$("#myinput").keyup(function(){ 
    $(this).change(); 
}); 

// if you're using a virtual keyboard, you can do : 
$(".key").live('click',function(){ 
    $("#myinput").val($("#myinput").val()+$(this).val()); 
    $("#myinput").change(); // Trigger change when the value changes 
}); 
+0

изменение события запускается только при выходе из этого поля ввода, а не при каждом нажатии клавиши. keyup - беспорядок, поскольку, если вы нажимаете клавишу вкладок, это вызовет событие для следующего элемента, тот, который вы введете (по крайней мере, в firefox 5.0)! Также - вы говорите, что событие keyup будет срабатывать при вставке? - это правильно, если вы введете клавиатуру, а не в контекстное меню браузера. – ThatGuy

Смежные вопросы