监控页面所有input框的输入,并进行过滤
来源:互联网 发布:经纬度转换xy坐标算法 编辑:程序博客网 时间:2024/05/22 01:59
function input_filter(){ var list=document.getElementsByTagName("input");//遍历所有符合条件的文本框,存储在strData var strData; for(var i=0;i<list.length && list[i];i++) { if (list[i].type == "text") { strData=list[i]; strData.addEventListener('input',function(){ strData.value = filterXSS(strData.value); } ,false); } }}
对于这段代码,只能监控最后一个input的输入并进行过滤,然而在strData=list[i]; 后直接加alert(strData.id);省略addEventListener函数,则可以得到页面所有input的ID
第二种解决方案:
function input_filter(){document.querySelector('body').addEventListener('change', function() { var list=document.getElementsByTagName("input"); //遍历所有符合条件的文本框,存储在strData var strData; for(var i=0;i<list.length && list[i];i++) { if (list[i].type == "text") { strData=list[i]; strData.value = filterXSS(strData.value); } } } , false);} input_filter();
其中,关于querySelector有一篇文章写得不错http://www.nowamagic.net/librarys/veda/detail/388,原文前半部分如下:
在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id 等方式来查找,这显然是远远不够的,如果想要进行更为精确的选择不得不使用看起来非常繁琐的正则表达式,或者使用某个库。事实上,现在所有的浏览器厂商都提供了 querySelector 和 querySelectorAll 这两个方法的支持,甚至就连微软也派出了 IE 8 作为支持这一特性的代表,querySelector 和 querySelectorAll 作为查找 DOM 的又一途径,极大地方便了开发者,使用它们,你可以像使用 CSS 选择器一样快速地查找到你需要的节点。
querySelector 和 querySelectorAll 的使用非常的简单,就像标题说到的一样,它和 CSS 的写法完全一样,对于前端开发人员来说,这是难度几乎为零的一次学习。假如我们有一个 id 为 test 的 DIV,为了获取到这个元素,你也许会像下面这样:
1
document.getElementById(
"test"
);
现在我们来试试使用新方法来获取这个 DIV:
1
document.querySelector(
"#test"
);
2
document.querySelectorAll(
"#test"
)[0];
下面是个小演示:
感觉区别不大是吧,但如果是稍微复杂点的情况,原始的方法将变得非常麻烦,这时候 querySelector 和 querySelectorAll 的优势就发挥出来了。比如接下来这个例子,我们将在 document 中选取 class 为 test 的 div 的子元素 p 的第一个子元素,当然这很拗口,但是用本文的新方法来选择这个元素,比用言语来描述它还要简单。
1
document.querySelector(
"div.test>p:first-child"
);
2
document.querySelectorAll(
"div.test>p:first-child"
)[0];
下面是个小演示:
我是层里的 p 标签
现在应该对于 querySelector、querySelectorAll 方法中的参数已经非常明白了,是的,它接收的参数和 CSS 选择器完全一致。querySelector 和 querySelectorAll 的区别在于 querySelector 用来获取一个元素,而querySelectorAll 可以获取多个元素。querySelector 将返回匹配到的第一个元素,如果没有匹配的元素则返回 Null。querySelectorAll 返回一个包含匹配到的元素的数组,如果没有匹配的元素则返回的数组为空。在本文最后一个例子中,我们使用 querySelectorAll 给所有 class 为 emphasis 的元素加粗显示。
1
var
emphasisText = document.querySelectorAll(
".emphasis"
);
2
for
(
var
i = 0 , j = emphasisText.length ; i < j ; i++ ){
3
emphasisText[i].style.fontWeight =
"bold"
;
4
}
这是原生方法,比起jquery速度快,缺点是IE6、7不支持。
- 监控页面所有input框的输入,并进行过滤
- input输入框实时监控 并实现延迟发起请求
- 时时监控 input 输入框输入的文本值
- input 输入过滤
- input输入过滤js
- input输入并自动跳到下个输入框
- css实现html页面输入框input的美化
- SM-js判断input-text输入值并进行反馈
- javascript 过滤页面彻底过滤输入时的特殊字符
- jquery input输入框进行内容联想
- 移动端页面监控input输入并且限制只输入2位小数
- 过滤页面上输入框的输入内容中的特殊字符
- 对Input空间的值进行实时监控
- 好玩的input输入框
- Qt遍历目录的所有文件,并过滤后缀名
- 获取页面中所有类型为text的input控件
- 对输入框的特殊字串进行过滤,防止SQL注入
- JavaScript 数组对象获得input输入框的值,并设置
- OA强大的考勤管理
- Idea新建SpringMVC报错原因
- Linux中的ipcs命令与ipcrm命令
- 关于JQuery加载本地JSON文件无法读取(权限不足的)解决
- Openjudge1288 The Rotation Game(dfs)
- 监控页面所有input框的输入,并进行过滤
- JVM参数分析(精)
- poj 2456 最大化最小值
- 父布局为RelativeLayout,textview设置layout_gravity="center_vertical"无效。
- ZOJ 2100 Seeding DFS
- LeetCode #26 Remove Duplicates from Sorted Array
- lingo中对start(@wrap(J+I+2,7))) >= required(J))的理解
- NUC100RE3AN串口驱动库修改
- Unity笔记 2D Best Practices (2D IK 骨骼动画 event 换装 蒙皮 排序)