После потери фокуса, если поле заполнено но невалидно почему то выводятся сразу два одинаковых сообщения: Ссылка не введена...
НУЖНО ЧТО БЫ ВЫВОДИЛОСЬ ТОЛЬКО ОДНО Никак не пойму, где ошибка в коде.
// Управляем состоянием кнопки Отправить
// УСЛОВИЯ включения кнопки:
// значение поля список должно быть отличное от 0
// поле ссылка должно быть не пустое и валидное
var input = $('#input');
input.bind('focus', function() {
var select_intent = $('#dropdown_intent_widget').val();
if (select_intent === '0') {
// Блокируем кнопку Отправить
$('#button').attr('class', 'md-btn disabled');
}
});
input.bind('change focusout', function() {
var input_val = $(this).val();
var select_intent = $('#dropdown_intent_widget').val();
var regexp = new RegExp("^(https|http)(:\/\/)(www\.)?([a-zA-Z0-9_\.-]+)\.([a-z]{2,10})$");
if (select_intent !== '0') {
if (regexp.test(input_val)) {
// Разблокируем кнопку Отправить
$('#button').attr('class', 'md-btn enable');
} else {
// Блокируем кнопку Отправить
$('#button').attr('class', 'md-btn disabled');
// Выводим сообщение
new PNotify({
title: 'Ошибка',
text: 'Ссылка не введена или введена в неверном форате',
type: 'error',
icon: 'false',
buttons: {
sticker: false
}
});
}
}
});
<!-- поле - список (подгружается динамически в select) -->
<input type="text" id="dropdown_intent_widget" value="0" />
<!-- поле - ссылка -->
<input type="text" id="input" name="input" value="" />
<!-- кнопка - по умолчанию выключена -->
<a id="button" class="md-btn disabled">Отправить</a>
Проблема не в pNotify, а в этой строке:
input.bind('change focusout', function() {
Получается вы вешаете на два события обработку, и когда убираете фокус отрабатывает и focusout
и change
если значение поля изменилось, и появляется 2 сообщения, когда значение не меняется отрабатывает только focusout
и вы думаете что всё работает правильно.
Думаю можно убрать focusout
и оставить только change
, получится если убрали фокус и значение в поле осталось прежним событие не отработает, а так при focusout
получается что вы проверяете правильность значения каждый раз, даже если оно не менялось.
Можно ли встроенными средствами bootstrap selectpicker организовать выпадание (выпадение) списка select вправо, а не вниз?
Добрый день, всем! Тестирую микроразметку Product https://searchgoogle