失去焦点后,如果该字段已填写但由于某种原因无效,则会立即显示两条相同的消息:未输入链接...
只显示一个是必要 的 我不明白代码中的错误在哪里。
// Управляем состоянием кнопки Отправить
// УСЛОВИЯ включения кнопки:
// значение поля список должно быть отличное от 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,而在于这一行:
事实证明,您在两个事件上挂起处理,当您移除焦点时,它会起作用,
focusout
如果change
字段的值已更改,则会出现 2 条消息,当值没有更改时,它只会起作用focusout
,您认为一切正常正确。我认为你可以 remove
focusout
and leave onlychange
,事实证明,如果焦点被移除并且该字段中的值保持不变,则该事件将不起作用,但focusout
事实证明你每次都检查值的正确性时,即使它没有改变。