событие будет запущено только тогда, когда ввод теряет фокус.change для самого input событие будет запущено только тогда, когда ввод теряет фокус

В моем случае мне нужно позвонить в службу (проверить, является ли значение допустимым), как только изменилось значение ввода , Как я мог сделать это?

ОБНОВЛЕНО для пояснения и примера

Примеры: http://jsfiddle.net/pxfunc/5kpeJ/

Метод 1. input поможет? (Большая путаница с «этим» в javascript связана с тем, что он, как правило, связан не с вашим объектом, а с текущей областью выполнения — это может быть не совсем так, как это работает, но мне всегда так кажется — подробное объяснение см. в статье)

В современных браузерах используется событие input. Это событие будет срабатывать, когда пользователь вводит текстовое поле, вставляя, отменяя, в основном, каждый раз, когда значение изменяется от одного значения к другому.

В jQuery сделайте это следующим образом

$('#someInput').bind('input', function() { 
    $(this).val() // get the current value of the input field.
});

, начиная с jQuery 1.7, замените bind. Это как окно, которое вы можете открыть с помощью on:

$('#someInput').on('input', function() { 
    $(this).val() // get the current value of the input field.
});

Метод 2. keyup поможет? (Большая путаница с «этим» в javascript связана с тем, что он, как правило, связан не с вашим объектом, а с текущей областью выполнения — это может быть не совсем так, как это работает, но мне всегда так кажется — подробное объяснение см. в статье)

Для старых браузеров используйте события событий keyup (оно срабатывает после отпускания клавиши на клавиатуре, это событие может давать своего рода ложное срабатывание, поскольку при отпускании «w» значение ввода изменяется и keyup, но также когда клавиша «shift» отпускается, { *} событие запускается, но не было внесено никаких изменений во входные данные.). Также этот метод не срабатывает, если пользователь щелкает правой кнопкой мыши и вставляет из контекстного меню: keyup Метод 3. Таймер (

$('#someInput').keyup(function() {
    $(this).val() // get the current value of the input field.
});

Чтобы обойти ограничения setInterval или setTimeout С чем вы столкнулись

, вы можете установить таймер для периодической проверки значения входных данных, чтобы определить изменение значения. Вы можете использовать keyup, чтобы выполнить эту проверку таймера. См. отмеченный ответ на этот вопрос SO: setInterval или setTimeout событие изменения текстового поля jQuery или см. рабочий пример с использованием скрипта события для запуска и остановки таймера для определенного поля ввода focus и blur (срабатывает только тогда, когда изменение действительно происходит, но делает это немедленно)

В JavasSript есть 5 примитивных типов данных String, Number, Boolean, null и undefined. Я попытаюсь объяснить на некотором простом примере

  • oninput В противном случае вам нужно проверить все эти события, которые могут указывать на изменение значение элемента input:

в качестве значения ввода еще не будет введено новое нажатие клавиши)

  • onchange
  • onkeyup ( не keydown или keypress (если поддерживается)
  • onpaste и, возможно,

(я не уверен насчет этого) { *} В HTML5 и без использования jQuery вы можете использовать

  • onmouseup. Это будет срабатывать при каждом изменении текста ввода.

Поддерживается в IE9 и других браузерах. input поможет? (Большая путаница с «этим» в javascript связана с тем, что он, как правило, связан не с вашим объектом, а с текущей областью выполнения — это может быть не совсем так, как это работает, но мне всегда так кажется — подробное объяснение см. в статье) :

var input = document.querySelector('input');

input.addEventListener('input', function()
{
    console.log('input changed to: ', input.value);
});

Попробуйте это в

jsFiddle здесь

Как уже предлагали другие, решение в вашем случае состоит в том, чтобы прослушивать несколько событий Глядя на вывод

Плагины, выполняющие эту работу, часто прослушивают следующие события: Если вы считаете, что это может подойти, вы можете добавить и другие события. Глядя на вывод
Я предлагаю не превышать в событиях для прослушивания, так как он загружает в память браузера дальнейшие процедуры, выполняемые в соответствии с поведением пользователя.

$input.on('change keydown keypress keyup mousedown click mouseup', handler);

обратите внимание, что изменение значения элемента ввода с помощью JavaScript (например, с помощью метода jQuery focus, blur) не вызовет ни одно из указанных выше событий.
(Ссылка:

Внимание: https://api.jquery.com/change/ .val() keyup
Есть такие события jQuery, как keyup ).

Если вы хотите, чтобы событие запускалось всякий раз, когда что-то изменяется внутри элемента, вы можете использовать нажатие клавиши Относится к элементу DOM, который сгенерировал событие.

, которые вы можете использовать с вводом Элементы HTML. Вы можете дополнительно использовать blur () и // .blur срабатывает, когда элемент теряет фокус // Для запуска вручную используйте: Это покрывает каждое изменение ввода с использованием jQuery 1.7 и выше: Относится к элементу DOM, который сгенерировал событие.

javascript — запрос Ajax возвращает 200 OK, но вместо успеха генерируется событие ошибки — переполнение стека

$('#target').blur(function() {
  alert($(this).val());
});

Я реализовал запрос Ajax на своем веб-сайте и вызываю конечную точку с веб-страницы. всегда возвращает 200 OK, но jQuery выполняет событие ошибки. Я пробовал много вещей, но не смог

$('#target').blur();

javascript — запрос Ajax возвращает 200 OK, но вместо успеха выдается событие ошибки

$(".inputElement").on("input", null, null, callbackFunction);