今天需要为项目所有的页面可编辑input框增加空字符串过滤功能,利用正则表达式很容易实现内容的过滤,但是项目有上百个页面,每个页面也有20左右的input框,如果一个一个的加事件的话,估计后半生都没了,如何在不改动现有页面的前提下,又能实现目标呢?想到了在页面解析的时候用JS去动态的为这些输入框增加事件,并且还要保留原事件,只要想到了,一定能做到,doit。下面是实现的代码。
function trimInputs(){
var o=document.getElementsByTagName("input");
for(var i=0;i <o.length;i++){
if(o[i].type=="text"&& !o[i].disabled && !o[i].readOnly){//只对可编辑的输入框添加过滤功能
o[i].attachEvent("onblur",function(obj){ return function()
{obj.value=(obj.value).replace(/\s/g,"");} }(o[i]));//闭包传参 }
}
}
window.attachEvent("onload",trimInputs);//如果页面少的话,从性能考虑可以写在调用页面里,不要写在公共JS里面
因为所有的页面几乎都需要增加这样的功能因此就把这段功能直接加到项目的公共JS,进入页面测试下完全达到预期效果,哎,不过那个闭包传参研究了好大会,看来以后还要加紧对闭包的学习。
上面的只是为项目需求而写的特定代码,稍微修改下可以适合多种情况。为实现这个功能又特意的温习下正则表达式,修改了以前系统里面对数字的验证方法,数字正则表达式:
function test(obj){
if(obj.value.match(/^-?\d*(\.)?\d+$/)){
alert("匹配");
}else{ alert("不匹配"); }
}
BWT:闭包在IE下容易引起内存的泄露,如果页面比较复杂的话,可以用下面的代码来代替闭包
function demo(){
//IE下是srcElement ,FF下是target
var obj=event.srcElement ? event.srcElement : event.target;
//do something for obj
}
分享到:
相关推荐
使用addEventListener方法为元素添加事件监听是推荐的方式,因为它允许为同一个元素的同一个事件添加多个监听器,而且不会覆盖之前添加的监听器。而直接在对象上赋值事件处理器的方式则有限制,通常只能绑定一个函数...
在网页开发中,实现页面元素如`div`的拖动交换位置...同时,配合自定义的JavaScript函数,用户还可以动态地添加和删除页面元素,增强了交互性和灵活性。项目的样式通过CSS进行控制,确保了良好的视觉效果和用户体验。
SVG,全称Scalable Vector Graphics,是一种基于XML的...通过对这些例子的分析和实践,你不仅能理解SVG的基本元素,还能掌握如何利用JavaScript响应用户的鼠标操作,从而为你的网页和应用程序增添更多动态和互动性。
JavaScript事件是浏览器或Node.js环境中发生的特定行为,如用户点击按钮、页面加载完成或输入框获得焦点等。事件驱动编程是JavaScript的核心特性之一,通过监听和处理这些事件,我们可以创建响应式的用户体验。 二...
这篇博客“利用eval()函数给树节点统一添加单击事件实现新建选项卡功能”探讨了一个具体的JavaScript编程技巧,如何通过eval()函数来处理用户交互,特别是针对树形结构数据的点击事件,进而实现新的选项卡功能。...
6. **事件处理**:在Delphi中,可以绑定JavaScript事件到TWebBrowser控件,比如`OnBeforeNavigate2`事件用于在导航前执行操作,`OnDocumentComplete`事件则在页面加载完成后触发。 7. **数据绑定**:可能涉及到将...
同时,还可以为元素添加事件监听器,比如`element.addEventListener('keyup', function() {...})`,以便在用户输入时执行特定操作。 3. 插入到DOM:最后,使用`appendChild()`或`insertBefore()`方法将新元素添加到...
此外,还有一些高级事件机制,如事件委托(event delegation),它利用事件冒泡原理,将事件监听器添加到父元素上,从而减少内存消耗和提高性能。还有`Event`对象,它提供了`preventDefault()`方法阻止默认行为(如...
在模板中直接为元素添加事件监听器是一种直接的方法。例如,使用`art-template`模板引擎,可以在按钮元素上添加`onclick`事件: ```html {{ each rows value key }} <td><button type="button" onclick=...
- **JavaScript事件注册**:通过`addEventListener`或`attachEvent`(IE浏览器)为元素添加事件监听器,也可以使用HTML属性直接绑定事件处理函数,如`onclick="functionName()"`。 - **事件处理函数**:定义函数来...
然后,我们需要将这个新创建的元素添加到网页的某个位置。这可以通过`appendChild()`或`insertBefore()`等方法完成。假设我们希望将其添加到id为`container`的元素后面: ```javascript // 获取目标容器元素 var ...
**JS操作DOM元素属性和方法大全** 在JavaScript中,DOM(Document Object Model)是一种标准,用于表示HTML或XML文档的结构,并提供了与这些文档交互的方法。DOM是浏览器提供的一种接口,使得JavaScript能够读取、...
为了使固定元素与页面设计相协调,可以使用CSS对元素添加或修改样式。例如,当元素变为固定时,可以通过设置`className`参数来添加特定的CSS类,然后在CSS文件中定义这个类的样式: ```css .sticky { background-...
1. 动态元素的事件绑定问题:在JavaScript中,当我们通过Ajax或者SPA页面动态添加元素到DOM中时,直接使用常规的事件绑定方法如`document.getElementById().addEventListener()`可能会导致事件绑定多次。这是因为...
在原生JavaScript中,我们可以使用`addEventListener`方法来为元素添加事件监听器。例如,为一个元素绑定单击事件: ```javascript document.getElementById('myElement').addEventListener('click', function() { ...
当用户滚动页面时, aos.js会检测元素进入视口,并触发预设的动画,使得页面元素的展现更加生动有趣。 在提供的压缩包中,我们有以下几个关键文件: 1. `index.html`:这是示例页面,包含了使用aos.js的HTML结构。...
在网页开发中,JavaScript是一种非常重要的脚本语言,它允许我们与用户进行交互,并动态地修改页面内容。本文将深入探讨如何通过...无论是简单的元素添加还是复杂的页面交互,JavaScript都是实现动态HTML的关键。
这可以用来动态添加、删除或修改页面元素,实现如计时器、日历插件等功能。 8. 文件“8.css”可能包含媒体查询,这是一种响应式设计技术,可以根据设备屏幕尺寸应用不同的样式。这有助于确保网页在不同设备上都能...
通过将事件监听器添加到父元素,可以监听到子元素的事件,从而避免为每个子元素单独绑定事件监听器。如果子元素数量众多或者动态添加,事件委托的优势尤为明显。 二、事件委托的原理 在具体实现中,事件委托通常...
8. **事件委托**:为避免为每个元素绑定事件处理器,可以将事件绑定到父元素上,利用事件冒泡机制来处理子元素的事件。 9. **正则表达式**:JavaScript提供了强大的正则表达式功能,可用于验证用户输入、提取字符串...