js给文本框动态绑定onblur方法,失焦的时候触发
2016-11-24 10:31
411 查看
//以下以失焦时,去掉文本框对应值的前后空格为例;此外存在局部刷新元素也适应,局部刷新后再调用此方法即可。
var funMap = {};//记录页面变动之前的所有元素原始onblur方法
var tmpMap = null;//以元素name为key存储onblur方法,存在当前页面原始onblur方法;
function bindOnblurEvent(){//绑定对象类型input(type=text) texttarea
var elements = document.getElementsByTagName('form')[0];
tmpMap = {};
if(elements != null){
for ( var i = 0; i < elements.length; i++) {
if(elements[i].type == "text" || elements[i].type == "textarea"){
//若有原始onblur,则存入funArr,并放入temMap;
if(elements[i].onblur != null){
var tmp = (elements[i].onblur+"").replace(/(\n)+|(\r\n)+/g, "");
var oldFun = funMap[elements[i].name];//通过name获取原始的onblur方法
var newFun = tmp.substring(tmp.indexOf("{")+1,tmp.indexOf("}"));
//防止原始onblur方法被覆盖
var addFun = typeof oldFun!="undefined" ? oldFun:newFun;
//当第二次触发bindOnblurEvent()时,当前onblur方法为addOnblurFun()时,不保存(原始onblur为空)
if(!(addOnblurFun.toString().replace(/(\n)+|(\r\n)+/g, "").indexOf(addFun) > 0)){
tmpMap[elements[i].name] = addFun;
}
}
//给onblur绑定新的方法
elements[i].onblur = addOnblurFun;
}
}
funMap = tmpMap;
}
}
function addOnblurFun(){
//input texttarea 所输入的字符串去掉前后空格
this.value = this.value.replace(/(^\s*)|(\s*$)/g, "");
//调用原始的onblur方法
//根据当前元素在form表单的位置,从funArr获取原始的onblur方法并调用
var fun = tmpMap[this.name];
if(typeof fun != "undefined"){
//alert("fun = "+fun);
eval(fun);
}
}
var funMap = {};//记录页面变动之前的所有元素原始onblur方法
var tmpMap = null;//以元素name为key存储onblur方法,存在当前页面原始onblur方法;
function bindOnblurEvent(){//绑定对象类型input(type=text) texttarea
var elements = document.getElementsByTagName('form')[0];
tmpMap = {};
if(elements != null){
for ( var i = 0; i < elements.length; i++) {
if(elements[i].type == "text" || elements[i].type == "textarea"){
//若有原始onblur,则存入funArr,并放入temMap;
if(elements[i].onblur != null){
var tmp = (elements[i].onblur+"").replace(/(\n)+|(\r\n)+/g, "");
var oldFun = funMap[elements[i].name];//通过name获取原始的onblur方法
var newFun = tmp.substring(tmp.indexOf("{")+1,tmp.indexOf("}"));
//防止原始onblur方法被覆盖
var addFun = typeof oldFun!="undefined" ? oldFun:newFun;
//当第二次触发bindOnblurEvent()时,当前onblur方法为addOnblurFun()时,不保存(原始onblur为空)
if(!(addOnblurFun.toString().replace(/(\n)+|(\r\n)+/g, "").indexOf(addFun) > 0)){
tmpMap[elements[i].name] = addFun;
}
}
//给onblur绑定新的方法
elements[i].onblur = addOnblurFun;
}
}
funMap = tmpMap;
}
}
function addOnblurFun(){
//input texttarea 所输入的字符串去掉前后空格
this.value = this.value.replace(/(^\s*)|(\s*$)/g, "");
//调用原始的onblur方法
//根据当前元素在form表单的位置,从funArr获取原始的onblur方法并调用
var fun = tmpMap[this.name];
if(typeof fun != "undefined"){
//alert("fun = "+fun);
eval(fun);
}
}
相关文章推荐
- 文本框在鼠标离开时触发JS方法
- js在文本框回车触发事件的方法
- JS动态添加方法并绑定参数
- jQuery动态添加元素无法触发绑定事件的解决方法分析
- dwz 通过js 动态生成的查找找回按钮需要手动绑定lookup() 方法
- Unity 按钮动态的绑定和触发方法
- JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
- js 动态方法绑定
- JS moveStart和moveEnd方法(TextRange对象--查找与选择)--enter键动态在文本框中跳转
- js动态绑定事件方法
- UGUI按钮动态绑定和触发方法
- vue.js给动态绑定的radio列表做批量编辑的方法
- JS动态加载数据绑定事件--delegate() 方法
- JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
- JS动态赋值同时触发onchange方法
- js在文本框回车触发事件的方法
- GridView固定表头 - 动态创建模板列 、构造模板选择列触发js方法
- HTML中关于动态创建的标签无法绑定js事件的解决方法
- js动态添加事件的方法!()
- 动态加载JS脚本的4种方法