jquery - JQuery没有触发焦点
问题描述
我经营一个商业网站,并试图在客户端防止某些免费电子邮件地址不在我的网站上注册(服务器端将单独处理)。我查看了一些帖子,并在https://stackoverflow.com/a/8277306/857629上看到了 skinsey 的答案。
我必须对代码进行的唯一真正更改是focusout
在输入框上触发检查,然后显示一条消息并清除输入框。
我对 JQuery 很陌生,无法弄清楚为什么当输入框失去焦点时下面的代码没有触发。
有问题的元素是:
<input type="email" name="email" id="inputEmail" placeholder="your contact email">
我的 JQuery 如下:
jQuery('#inputEmail').focusout(function(){
// Get the email value from the input with an id="inputEmail"
var email_addr = jQuery('#inputEmail').val();
// The regex to check it against
var re = '[a-zA-Z_\.-]+@((hotmail)|(yahoo)|(gmail)|(outlook)|(protonmail)|(aol))\.[a-z]{2,4}';
// Check if the email matches
if(email_addr.match(re)){
// Email is on the filter list
// Return false and don't submit the form, or do whatever
jQuery('#inputEmail').value = "";
jQuery('#inputEmail').append("<div>To prevent SPAM, free email addresses are no longer accepted on registration. Please enter a valid coorporate email address.</div>");
return false;
} else {
// Email ok
// Allow the form to be submitted
return true;
}
});
</script>
我有一种感觉,我错过了一些简单的东西。
任何帮助将不胜感激。
解决方案
你可以试试这个
$('#inputEmail').on( "focusout", function(){
console.log('Focus Removed')
} );
推荐阅读
- perl - cpan/cpanm 和 cpm 有什么区别?
- python - 如何从 get_attribute_list 中获取值
- html - 使用 NodeJS Express 时将表单数据插入 MySQL 数据库
- laravel-5 - Laravel 复杂 where 条件的问题。| CakePHP 加入的问题
- python - Python:从磁盘读取时 IOError 110 连接超时
- android - 子组件(无作用域)可能不引用作用域绑定:@Singleton @Provides @org.jetbrains.annotations.NotNull
- javascript - 聚合积累内部对象
- sql - 全文搜索未产生结果
- json - 无法在批处理脚本中连接 2 个变量的值
- java - Spring:当我们还自定义 init() 或 @PostConstuct 时,为什么需要 InitializingBean 的 afterPropertiesSet