-1
У меня есть поле ввода, и мне нужно выяснить, какой последний символ используется для ввода пользователем. Это может быть последняя буква на входе, но она также может быть в любом месте поля ввода.jQuery: Получить последнее изменение в поле ввода
мне нужно что-то вроде этого:
var timerid;
$("#input").on("propertychange change click keyup input paste",function(e){
var value = $(this).val();
if($(this).data("lastval")!= value){
$(this).data("lastval",value);
//console.log(difference between lastval and value or something similar to get the last character the user types in the input)
clearTimeout(timerid);
timerid = setTimeout(function() {
//change action
console.log(value);
input_array(value)
},400);
};
});
оффтоп: вы не хотите, что 'если lastval = value', в противном случае, если вы продолжаете нажимать одну и ту же клавишу, вы получите несколько (все еще debounced, но несколько) console.logs для тот же ключ, а не только последний. –
Что бы вы ожидали сохранить в 'input_array', если пользователь вставляет все слова? Или они выбирают текст и нажимают ctrl-x. Возможно, вам захочется определить ваши требования немного более четко, чем «последнее изменение». Последний символ напечатан? Тогда почему у вас есть «propertychange» и «paste» в вашем примере? –
спасибо, Это о последнем символе, введенном пользователем здесь. Но вход можно использовать и в противном случае, например, вставляя что-то. – buckdanny