我确信这应该很容易,但我无法让它发挥作用。
HTML
<label for="email">Enter email for updates:</label>
<input type="text" name="email" id="email" placeholder="your@email.com" />
<button name="submit" type="submit">Submit</button>
JS
$(document).ready(function() {
$('button').hide();
$('input').keyup(function() {
if( !validateEmail(email) ){
$('button').show();
}
};
function validateEmail(email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return emailReg.test( email );
}
});
我不是在寻找最好的电子邮件验证,而只是在表单看起来正确时向用户展示的简单方法。
感激不尽的任何帮助。
答案 0 :(得分:6)
5个问题:
"valid email"@example.com
)我对前四个问题的建议:
$('button').hide();
$('input').keyup(function() {
if( validateEmail($(this).val()) ){
$('button').show();
} else {
$('button').hide();
}
});
function validateEmail(email) {
if (!email) return false;
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return emailReg.test( email );
}
对于最后一个问题,我建议您阅读Stop Validating Email Addresses With Your Complex Regex。
答案 1 :(得分:3)
对dystroy所说的一个帮助,有一个语法错误。但另外,您在调用email
时未设置validateEmail
变量。根据史蒂夫的评论,我还使核心更加具体。这是更新的代码。
$('#email').keyup(function() {
var email = $(this).val();
if(validateEmail(email) ){
$('button[type="submit"]').show();
}
else {
$('button[type="submit"]').hide();
}
});
答案 2 :(得分:0)
感谢破坏,Eli Gassert&amp; danronmoon。你们指出这里有很多不同的错误。为了将来参考,这是您现在适合我的不同修补程序中的代码:
$('button').hide();
$('input').keyup(function() {
var email = $('#email').val();
if( validateEmail(email)){
$('button').show();
} else {
$('button').hide();
}
});
function validateEmail(email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return emailReg.test(email);
}