JQuery - Как динамически скрыть кнопку отправки при удалении электронной почты в поле ввода? - PullRequest
2 голосов
/ 08 февраля 2012

Обратите внимание, когда вы набираете действительное письмо ... затем удалите это письмо, и оно не скрывает кнопку отправки. Есть jsFiddle:

http://jsfiddle.net/BGNsS/

Кто-нибудь может мне помочь?

ТНХ!

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Проверьте правильность регулярного выражения и длину. Ваше регулярное выражение имеет успех для пустого поля.

Здесь вы можете проверить длину коллекции элементов jQuery

if(!$("#sForm input#write").length > 0) $("input#sub").hide();

Но вы должны проверить длину значения

detectEmail.length == 0

Обновлен jsFiddle

$('input#sub').hide();

$('input').keyup(function() {
    $('span.attention').hide();

    var detectEmail = $(this).val();
    var emailRegex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

    if(detectEmail.length == 0 || !emailRegex.test(detectEmail)) 
    {
        $('#sub').hide();
        $(this).after('<span class="attention">Writing valid e-mail...</span>');
    }
    else 
    {
        $('#sub').show();
    }
});
0 голосов
/ 08 февраля 2012

Проверка на пустую строку на самом деле неверна.

Этот возвращает количество элементов (которое всегда равно 1):

$("#sForm input#write").length

Изменить на что-то вроде этого

$("#sForm input#write").val().length
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...