2016-02-23 3 views
3

Я пытаюсь написать что-то, что будет определять ввод в поле формы, но я хочу, чтобы он срабатывал не только при нажатии клавиши, но и в том случае, если пользователь также удерживал клавишу для нескольких повторений символов , или если они также должны были скопировать & вставить что-то в поле ввода.jQuery альтернатива keyup

Я пробовал использовать событие keyup, но это не соответствует всем моим требованиям, и событие change, похоже, не подходит. Может ли кто-нибудь посоветовать мероприятие, которое может быть более подходящим?

спасибо.

+1

ключ нажатых = 'keydown' событие. copy + paste = 'paste',' change' или 'keyup' (при обнаружении нажатых клавиш). Обратите внимание, что это событие не имеет никакого отношения к самому jQuery - они доступны как часть DOM. Если вы можете дать нам подробную информацию о ваших требованиях, мы сможем предложить более подробную помощь или альтернативные решения. –

+1

Для всего, включая 'paste' и т. Д., Вы можете использовать событие' input', как в '$ (element) .on ('input', function() {...' – adeneo

ответ

1

Вы можете использовать HTML-тег oninput непосредственно с именем функции, как в этом примере: http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_oninput

+0

Вы прочитали строку, в которой говорится: изменение не очень хорошо? » – epascarello

+0

Как это не подходит, можете ли вы объяснить, что вы ищете? –

+0

Извините, я имею в виду, что .change не работает, когда я заменяю его .keyup –

2

Вы можете искать input события JQuery в.

$('inputSelector').on('input', function() {}); 

Посмотрите на следующий JSFiddle для примера: http://jsfiddle.net/philfreo/MqM76/

+0

@CharlieAllen: Это решило вашу проблему? Если да, вы можете принять это как ответ. :) – Kishor

1

Вы хотите запустить ту же функцию для любой keydown, keyup или paste?

$(document).ready(function(){ 

    $("#testingInput").on("keydown keyup paste", function() { 
    console.log("running for keydown keyup paste!"); 
    }); 

}); 

Если вы не можете просто запустить каждый из них в зависимости от события:

$("#testingInput").on("keydown", function() {}); 

$("#testingInput").on("keyup", function() {}); 

$("#testingInput").on("paste", function() {}); 

https://jsfiddle.net/bhqme6ze/1/