Лучший способ отследить onchange по мере ввода в типе ввода = & ldquo; text & rdquo ;?

В jQuery вы можете использовать .is (': hover'), поэтому

function IsMouseOver(oi)
{
   return $(oi).is(':hover');
}

теперь будет самым кратким способом предоставления функции, запрошенной в OP.

Примечание. Вышеописанное не работает в IE8 или ниже

. Как менее лаконичная альтернатива, которая работает в IE8 (если я могу доверять модулю IE8 IE8), и делает это без запуска $(...).hover(...) повсюду , и не требует знания селектора для элемента (в этом случае ответ Иво проще):

function IsMouseOver(oi)
{
    return oi.length && 
           oi.parent()
             .find(':hover')
             .filter(function(s){return oi[0]==this})
             .length > 0;
}
386
задан Jonatas Walker 25 November 2015 в 15:39
поделиться

8 ответов

Обновление:

См. Другой ответ (2015).

<час>

Исходный 2009 Ответ:

Так, Вы хотите onchange событие стрелять в keydown, размытость, и вставка? Это волшебно.

, Если Вы хотите отследить изменения, как они вводят, используйте "onkeydown". Если необходимо захватить операции вставки с мышью, используйте "onpaste" ( IE, FF3) и "oninput" ( FF, Opera, Chrome, <глоток> Safari 1 ).

<глоток> 1 Поврежденный для <textarea> на Safari. Используйте textInput вместо этого

256
ответ дан Community 26 November 2015 в 01:39
поделиться
  • 1
    устанавливающие инструкции являются слишком сложными для меня на самом деле – Mike 22 November 2011 в 11:57

Ниже приведенный код отлично работает для меня с Jquery 1.8.3

HTML: <input type="text" id="myId" />

Javascript / JQuery:

$("#myId").on('change keydown paste input', function(){
      doSomething();
});
40
ответ дан Nycen 25 November 2015 в 15:39
поделиться

Вы могли использовать keydown, keyup и keypress события также.

3
ответ дан Gumbo 26 November 2015 в 01:39
поделиться

Robert Siemer addEventListener не поддерживается в IE8.

"Более старые версии IE поддерживали эквивалентный, собственный EventTarget.attachEvent () метод". https://developer.mozilla.org/it/docs/Web/API/Element/addEventListener

0
ответ дан 22 November 2019 в 23:35
поделиться

Метод 1: Добавляют слушателя события для input:

element.addEventListener("input", myFunction);

 

Метод 2: Определяют oninput свойство с JavaScript:

element.oninput = function()
{
    myFunction();
};

 

Метод 3: Определяют oninput свойство с HTML:

<input type="text" oninput="myFunction();">
0
ответ дан 22 November 2019 в 23:35
поделиться

У меня было аналогичное требование (текстовое поле в стиле твиттера). Использовали на клавиатуре и на смене . onchange фактически выполняет операции вставки мыши при потере фокуса с поля.

[Обновление] В HTML5 или более поздних версиях используйте oninput для получения обновлений модификации символов в реальном времени, как описано в других ответы выше.

8
ответ дан 22 November 2019 в 23:35
поделиться

onkeyup происходит после ввода, например, я нажимаю t , когда я поднимаю палец, действие происходит, но на keydown действие происходит до того, как я наберу символ t

Надеюсь, это кому-то поможет.

Так что onkeyup лучше, если вы хотите отправить то, что только что набрали.

11
ответ дан 22 November 2019 в 23:35
поделиться

Если вы используете ТОЛЬКО Internet Explorer, вы можете использовать это:

<input type="text" id="myID" onpropertychange="TextChange(this)" />

<script type="text/javascript">
    function TextChange(tBox) {
        if(event.propertyName=='value') {
            //your code here
        }
    }
</script>

Надеюсь, это поможет.

7
ответ дан 22 November 2019 в 23:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: