我有一个输入显示无效电子邮件格式的消息。当遵循格式时,此消息将消失。
$('#id_email.form-control').keyup(function(){
$('span.error-keyup-email').remove();
var inputVal = $(this).val();
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test(inputVal)){
$(this).after('<span style="color:red;" class="error error-keyup-email">Invalid Email Format.</span>');
}
});
代码非常好用。这正是我想要的。
问题:当我选择我已经通过浏览器保存的电子邮件时(通常它为用户保存电子邮件或伪)。当我没有输入我的电子邮件而我选择了我的电子邮件时,即使邮件格式正确,该邮件仍会保留在输入中。
你有什么想法吗?
如果您愿意,我可以给您更多详细信息,并感谢您抽出时间解决我的问题:)
度过愉快的一天:)
答案 0 :(得分:1)
试试这个:
$('#id_email.form-control').on('input', function(){
$('span.error-keyup-email').remove();
var inputVal = $(this).val();
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test(inputVal)){
$(this).after('<span style="color:red;" class="error error-keyup-email">Invalid Email Format.</span>');
}
});
keyup 仅在按下键时触发。 输入 会在值更改时立即触发
答案 1 :(得分:1)
问题是,当从浏览器使用自动填充时,您必须以某种方式检测它。不幸的是,在这种情况下不会触发输入的更改事件。
一种可能的解决方案可能是遍历所有输入字段onload并检查它们是否已填入
答案 2 :(得分:0)
//删除else中的错误范围
$('#id_email.form-control').keyup(function(){
$('span.error-keyup-email').remove();
var inputVal = $(this).val();
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test(inputVal)){
$(this).after('<span style="color:red;" class="error error-keyup-email">Invalid Email Format.</span>');
}
else{
$('span.error-keyup-email').remove();
}
});
答案 3 :(得分:0)
使用输入更改事件,当焦点丢失时调用auto
NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
NotificationCompat.Builder b = new NotificationCompat.Builder(this);
b.setSmallIcon(R.drawable.icon);
b.setContentTitle(name);
b.setContentText("missed call");
nm.notifiy(1001, b.build());