#javascript #jquery
Вопрос:
У меня есть поле под названием cellphoneDetails, я пытаюсь прикрепить к нему недопустимое событие, но оно не прикрепляет к нему событие
$(document).ready(function(e) { var x = document.getElementById("contactEditForm"); if (x.addEventListener) { var error = 0; alert('bingo'); x.addEventListener("submit", function(e) { alert('test test'); $("##CellphoneDetails").on("invalid", function() { alert($(this).val()); error = 1; if ($(this).val() != '') { $(this).focus(); $("##cellValidDetails").css('display', 'block'); } }); } } });
в HTML добавлен шаблон, который проверяет, введено ли значение, это должен быть действительный номер мобильного телефона, иначе, если он пустой, не проверяйте его и двигайтесь дальше
но из-за какой-то проблемы событие не привязывается к вызову отправки и создает беспорядок
Комментарии:
1. Вы добавляете прослушиватель событий, который добавляет прослушиватель событий, когда запускается событие, которое он прослушивает. Это редко бывает правильным поступком. Кроме того, в ваших селекторах есть два
#
символа, что неверно.2. так каково же решение этой проблемы
3. Не добавляйте прослушиватель событий в прослушиватель событий. Добавьте прослушиватель событий «недопустимый» за пределами «отправить». Используйте один
#
символ.
Ответ №1:
Первое , что я заметил , это то, что это должно быть $("#CellphoneDetails")
, а не $("##CellphoneDetails")
, и $("#cellValidDetails")
вместо $("##cellValidDetails")
этого .
Для определения цели и идентификации вам нужен только один #
.
Кроме того, я считаю (x.addEventListener)
, что это всегда будет неопределенным.
У вас есть сочетание JS и jQuery, я бы посоветовал просто использовать один или другой в первую очередь.
Комментарии:
1. это опечатка, потому что я использую серверную часть, поэтому всегда использую один #
2. я готов измениться, пожалуйста, направь меня
3. ХОРОШО! Я посмотрю на это поближе, когда смогу. Какова цель/цель/причина этого
if
заявления?if (x.addEventListener)