JS 全自动检测禁止输入特定字符

摘要:
大堆来自(document.querySelectorAll('input'))。map(function(item){//检索所有输入字段,function(ev){varhas=excludes.home(function(item){returnev.target.value&if(has){{ev.target.value=ev.targets.oldvalue | |“”;

项目中输入域,特别是文本输入域,一般都会禁用某些特殊字符,基于这个需求,实现了一个全局设置禁止输入特别字符的方法,核心代码:

Array.from(document.querySelectorAll('input')).map(function(item){ // 检索所有输入域,使用者可以修订别的选择器
    var excludes = ['"',"'"]; // 配置禁止输入的特定字符:这里配置的是单引号和双引号
/**
* addEventListener(EventName,fn,bool): 这里bool设置为true,表示事件响应前处理(事件捕获阶段),很关键
**/ item.addEventListener(
'input',function(ev){ var has = excludes.some(function(item){ return ev.target.value && ev.target.value.indexOf(item)>=0; }); if(has) { ev.target.value = ev.target.oldvalue||''; }else ev.target.oldvalue = ev.target.value; },true) });

页面加载完成后执行该核心代码即可。

为了防止重复绑定,可以对代码略作改造:

function validateExcludes(ev){
    var excludes = ['"',"'"]; // 配置禁止输入的特定字符: 这里配置的是单引号和双引号
    var has = excludes.some(function(item){
        return ev.target.value && ev.target.value.indexOf(item)>=0;
    });
    if(has) {
        ev.target.value = ev.target.oldvalue||'';
    }else ev.target.oldvalue = ev.target.value;
}

Array.from(document.querySelectorAll('input')).map(function(item){ // 检索所有输入域,使用者可以修订别的选择器
   /**
    *  addEventListener(EventName,fn,bool): 这里bool设置为true,表示事件响应前处理(事件捕获阶段),很关键
    **/
    item.removeEventListener('input',validateExcludes,true); // 绑定前先移除对应句柄
    item.addEventListener('input',validateExcludes,true);
});

免责声明:文章转载自《JS 全自动检测禁止输入特定字符》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VM学习—实现自己的内核chart.js使用常见问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

基于Gin+Gorm框架搭建MVC模式的Go语言企业级后端系统

文/朱季谦 环境准备:安装Gin与Gorm 本文搭建准备环境:Gin+Gorm+MySql。 Gin是Go语言的一套WEB框架,在学习一种陌生语言的陌生框架,最好的方式,就是用我们熟悉的思维去学。作为一名后端Java开发,在最初入门时,最熟悉的莫过于MVC分层结构,可以简单归纳成controller层,model层,dao层,而在SpringBoot框架里...

js瀑布流 原理实现揭秘 javascript 原生实现

  web,js瀑布流揭秘   瀑布流再很久之前流行,可能如我一样入行晚的 ,可能就没有机会去使用。但是这个技术终究是个挺炫酷的东西,花了一个上午来研究,用原生js实现了一个,下面会附上源码,供大家解读。   说起瀑布流,其实实现原理特别简单,而且方法有很多,现在说一个大众的方法,所谓瀑布流就是 一堆样式差不多的 盒子排列在一起,排列规则是,插入到高度最低...

Bash实现读写ini文件

读取ini文件 ini文件中可以存在以#和;作为注释的部分,不会影响读取的结果。函数如下 1 #!/usr/bin/env bash 2 #------------------------------------------------------- 3 # FileName : Bash读取ini文件.sh 4 # Author...

4、在centos7上使用consul时,yml配置文件:

server: port: 8006 spring: application: name: consul-provider-payment cloud: consul: host: 192.168.152.131 port: 8500 discovery: service-na...

资产管理平台去除zabbix字样

1.主机可用性  修改/usr/share/zabbix/include/html.inc.php,文件没有改动过的话在602行,将zbx改成我们需要的即可 2.修改系统信息  修改/usr/share/zabbix/include/blocks.inc.php(修改样式),文件没有改动过的话在432行  修改/usr/share/zabbix/inc...

nodejs版实现properties后缀文件解析

1、propertiesParser.js let readline = require('readline'); let fs = require('fs');// properties文件路径 let local = 'zh', url = local == 'zh' ? /public/messages_zh.properties' :...