Изменение дорожки ввода документа

#javascript #javascript-events

#javascript #jquery #jquery-события

Вопрос:

Мне нужна помощь в этом:

В документе есть несколько полей ввода с <div class="quantity"><input .. > Это автоматически генерируется системой, и у меня нет доступа, чтобы изменить это.

Итак, мне нужен способ с помощью jQuery отслеживать onchange функцию при изменении входных данных.

Какой хороший способ добиться этого?

 var updateInput = document.getElementById(".quantity input");
            
    if ( updateInput ????? ) { 
          alert("Hallo") 
    };
  

Ответ №1:

getElementById не работает с именами классов. Вы просили jquery, почему бы не использовать change()?

 $('.quantity input').change(function() {
    alert('Input changed');
});
  

Из руководства:

Событие изменения отправляется элементу при изменении его значения. Это событие ограничено <input> элементами, <textarea> блоками и <select> elements. Для полей выбора, флажков и переключателей событие запускается немедленно, когда пользователь делает выбор с помощью мыши, но для других типов элементов событие откладывается до тех пор, пока элемент не потеряет фокус.

Демо:http://jsfiddle.net/Madmartigan/yzGYU /

Комментарии:

1. функция изменения работает, но только один раз… если вы продолжаете изменять поле ввода — предупреждение больше не запускается. есть предложения?

2. Должно работать нормально, обновленный ответ с примечаниями из документов и демо. Если вы хотите проверять значение вводимого текста при каждом нажатии клавиши, вам нужно будет использовать keyup() .

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

4. @CCcam: Если вы можете создать тестовый пример с вашим фактическим кодом на jsfiddle, я или кто-то другой, вероятно, смогу решить это за вас.

5. Я почти решил проблему, вместо этого используя change, используя вместо этого функцию live. продолжайте тестировать с этим. живая функция <3 спасибо, что указал мне правильное направление, Madmartigan!