#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. Для полей выбора, флажков и переключателей событие запускается немедленно, когда пользователь делает выбор с помощью мыши, но для других типов элементов событие откладывается до тех пор, пока элемент не потеряет фокус.
Комментарии:
1. функция изменения работает, но только один раз… если вы продолжаете изменять поле ввода — предупреждение больше не запускается. есть предложения?
2. Должно работать нормально, обновленный ответ с примечаниями из документов и демо. Если вы хотите проверять значение вводимого текста при каждом нажатии клавиши, вам нужно будет использовать keyup() .
3. хм, странно, что на демо это просто отлично работает.. но когда я применяю скрипт, даже используя keyup или keydown, или изменяя целевые классы.. результаты остаются прежними .. он обновляется один раз после выхода из фокуса, а затем больше не работает. Я обновил информацию с помощью кода, который я не могу изменить. все еще может быть что-то, что я делаю неправильно.
4. @CCcam: Если вы можете создать тестовый пример с вашим фактическим кодом на jsfiddle, я или кто-то другой, вероятно, смогу решить это за вас.
5. Я почти решил проблему, вместо этого используя change, используя вместо этого функцию live. продолжайте тестировать с этим. живая функция <3 спасибо, что указал мне правильное направление, Madmartigan!