Javascript 如何在使用jQuery进行电子邮件验证时在keypress上添加另一条语句
验证工作正常,如果输入了有效的电子邮件,则会显示一个隐藏框,如果无效,则会在覆盖图上显示消息错误,但如何检查是否键入或返回?有什么想法吗,伙计们 这是我的代码,也可以是:Javascript 如何在使用jQuery进行电子邮件验证时在keypress上添加另一条语句,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,验证工作正常,如果输入了有效的电子邮件,则会显示一个隐藏框,如果无效,则会在覆盖图上显示消息错误,但如何检查是否键入或返回?有什么想法吗,伙计们 这是我的代码,也可以是: 函数validateEmail(){ var validEmail=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; $(“#用户_电子邮件”).blur(函数(){ if(有效性测试(该值)){ $('.masked check').fadeIn(300) } 否则{ $('.masked che
函数validateEmail(){
var validEmail=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
$(“#用户_电子邮件”).blur(函数(){
if(有效性测试(该值)){
$('.masked check').fadeIn(300)
}
否则{
$('.masked check')。淡出(300);
$('.overlay')。追加('');
showOverlay($('#errors').html('请输入有效的电子邮件…');
}
});
}
validateEmail();
我不确定这是否是一种方法,但现在对我来说,唯一的问题是听不到按键向上或向下。这里是更新的我不确定这是最好的方式做它,但目前的工作
function validateEmail() {
var validEmail = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
$('#user_email').blur(function(){
$('.masked-check').hide();
if (validEmail.test(this.value)) {
$('.masked-check').fadeIn(300)
}
else {
$('.masked-check').fadeOut(300);
$('.overlay').append('<div class="alert alert-error" id="errors"></div>');
showOverlay($('#errors').html('Please enter a valid email...'));
}
if ($('#user_email').val()=='') {
$('.masked-check').hide()
}
});
}
validateEmail();
函数validateEmail(){
var validEmail=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
$(“#用户_电子邮件”).blur(函数(){
$('.masked check').hide();
if(有效性测试(该值)){
$('.masked check').fadeIn(300)
}
否则{
$('.masked check')。淡出(300);
$('.overlay')。追加('');
showOverlay($('#errors').html('请输入有效的电子邮件…');
}
如果($('#用户电子邮件').val()=''){
$('.masked check').hide()
}
});
}
validateEmail();
我相信您想要实现的是在每次按键后运行电子邮件验证,并不断通知用户他们的电子邮件是否有效,直到有效为止
有一个jQuery.keypress()
事件来标识按键事件
我在这里工作:
编辑:我相信彼得下面的答案要好得多:
他建议使用一个更好的正则表达式和
.keyup()
事件来解决使用.keypress()
时出现的退格问题。我相信您试图实现的是在每次按键后运行电子邮件验证,并不断通知用户他们的电子邮件是否有效,直到有效为止
有一个jQuery.keypress()
事件来标识按键事件
我在这里工作:
编辑:我相信彼得下面的答案要好得多:
他建议使用更好的正则表达式和
.keyup()
事件来解决使用.keypress()
时出现的退格问题。我喜欢基于有效/无效输入淡入/淡出的想法
我玩了一会儿,下面的内容似乎对我有用:
请注意,我根据以下回复将regex改编为电子邮件:
此外,keyup最适合我,因为keypress不能处理退格(解决方案如下:)我喜欢基于有效/无效输入淡入/淡出的想法 我玩了一会儿,下面的内容似乎对我有用: 请注意,我根据以下回复将regex改编为电子邮件: 此外,keyup最适合我,因为keypress没有处理退格(解决方案如下:)将您的函数“validateEmail”更改为以下内容:
function validateEmail(){
var validEmail = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
$('#user_email').keydown(function(event){
if (event.keyCode !== 13) {
return;
}
if (validEmail.test(this.value)) {
$('.masked-check').fadeIn(300)
}
else {
//$('.masked-check').fadeOut(300);
alert('Please enter a valid email');
}
});
}
将函数“validateEmail”更改为以下内容:
function validateEmail(){
var validEmail = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
$('#user_email').keydown(function(event){
if (event.keyCode !== 13) {
return;
}
if (validEmail.test(this.value)) {
$('.masked-check').fadeIn(300)
}
else {
//$('.masked-check').fadeOut(300);
alert('Please enter a valid email');
}
});
}
您可能不想在
keydown
上执行此操作。。。例如,如果我正在键入电子邮件地址:myemail@email.com
,我会获得我按下的每个字符的覆盖,直到电子邮件有效为止-在上面的示例中,这大约是16次。您可能不想在键下执行此操作。。。例如,如果我正在键入电子邮件地址:myemail@email.com
,我会得到我按下的每个字符的覆盖图,直到电子邮件有效为止,这在上面的示例中大约是16次。嘿,谢谢你的参考,老实说,我不希望:)是的,我的答案“回答了他的问题”,但你的“解决了问题”。:)嘿,谢谢你的推荐,老实说,我没想到:)是的,我的答案‘回答了他的问题’,但你的‘解决了问题’:)
function validateEmail(){
var validEmail = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
$('#user_email').keydown(function(event){
if (event.keyCode !== 13) {
return;
}
if (validEmail.test(this.value)) {
$('.masked-check').fadeIn(300)
}
else {
//$('.masked-check').fadeOut(300);
alert('Please enter a valid email');
}
});
}