2015-05-28 4 views
3

Я хочу проверить текстовое поле электронной почты, когда я нажимаю кнопку ввода. Одна проблема: когда я нажимаю кнопку ввода, текст исчезает, и ничего не происходит.Подтвердить адрес электронной почты для входа

Мой код:

$(document).keypress(function(e) { 
    if (e.which == 13) { 
     mailcontrole(); 
    } 
}); 

function mailcontrole { 

    var mail = $("#email").val(); 
    if (IsEmail(mail) == false) { 
     alert("false"); 
    } 
} 

function IsEmail(email) { 
    var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
    if (!regex.test(email)) { 
     return false; 
    } else { 
     return true; 
    } 
} 
+0

Добавить jsfiddle. также попробуйте http://api.jquery.com/event.preventdefault/. – trex

ответ

5

У вас есть поведение по умолчанию отправить форму с помощью ENTER.

$(document).keypress(function(e) { 
    e.preventDefault(); 
    if (e.which == 13) { 
     mailcontrole(); 
    } 
}); 

Добавление e.preventDefault(); останавливает это поведение!

UPDATE

Ваша функция отсутствует () также (спасибо Alex)!

function mailcontrole() { 
    var mail = $("#email").val(); 
    if (IsEmail(mail) == false) { 
     alert("false"); 
    } 
} 
+1

Также не забудьте указать, что функция 'mailcontrole' имеет синтаксическую ошибку. –

1

форма может быть отправлена, так как форма отправляется при нажатии кнопки ввода, и это должно было бы удалить форму. использовать event.preventDefault(), чтобы он не отправлял.

попробовать это:

$(document).keypress(function(e) { 
    if (e.which == 13) { 
     e.preventDefault(); 
     mailcontrole(); 
    } 
}); 
Смежные вопросы