onpropertychange & oninput兼容性

onpropertychange & oninput兼容性onpropertychange:适用IE,谷歌不适用。IE:监听所有属性,也适用js改变value<inputname=”fundName”id=”fundName”type=”hidden”value='<DM:DocumentTagfield=”fundName”/>’onpropertychange=”{ if(”==this.value){ return; } varvtime=document.f1.sys_createtime.value;

大家好,又见面了,我是你们的朋友全栈君。

函数

onpropertychange事件:IE专有,disable=true的时候失效,onpropertychange是在触发对象改变任何属性时都会触发。onpropertychange==onchange+onblur。onchange只有在用键盘改变其值,然后在失去焦点(onblur)后才触发。

oninput 事件:JS 改变 value 值时不能触发,下拉列表中选值时,也不会触发。

修改方法:

使用
$(选择器).on(事件名, 处理函数) / $(选择器).off(事件名, 处理函数)
来替代原生JS中的
elem.attachEvent(‘on’ + 事件名, 处理函数) / elem.detachEvent(‘on’ + 事件名, 	处理函数) — IE
elem.addEventListener(事件名, 处理函数) / elem.addEventListener(事件名, 处	理函数) — chrome

案例:

1、onpropertychange:适用IE,谷歌不适用。IE:监听所有属性,也适用js 改变 value

<input name="fundName" id="fundName" type="hidden" value='<DM:DocumentTag field="fundName"/>'
onpropertychange="{
	if(''==this.value){
		return;
	}
	var vtime = document.f1.sys_createtime.value;
	vtime = vtime.substring(0,10).replace(/\-/gi,'');
	document.f1.sys_title.value = vtime+'【'+this.value+'】'+'<%=strshowName%>'; 

}">

2、IE,谷歌都适用(),谷歌js 改变 value 时,却不会触发oninput

<input name="fundName1" id="fundName1" type="text" value='<DM:DocumentTag field="fundCode"/>' onpropertychange="immediately()" oninput="immediately()">

function immediately(){ 
	alert("0");
   var element = document.getElementById("fundName1"); 
   if( window.ActiveXObject) { 
		element.onpropertychange = setTitle; 
   }else{ 
		element.addEventListener("input",setTitle,false); 
   } 
 } 
function setTitle(){
	alert("1");
	var fundName = document.getElementById("fundName1");
	if(''==fundName.value){
		return;
	}
	var vtime = document.f1.sys_createtime.value;
	vtime = vtime.substring(0,10).replace(/\-/gi,'');
	document.f1.sys_title.value = vtime+'【'+fundName.value+'】'+'<%=strshowName%>'; 
}

3、IE,谷歌都适用(),谷歌js 改变 value 时,触发oninput

方法:监听对象添加定时器

<td width="124" height="23" align="center" bgcolor="#efefef">基金名称</td>
<td  bgcolor="#FFFFFF">
	<input name="fundCode" id="fundCode" type="hidden" value='<DM:DocumentTag field="fundCode"/>'>
	//监听对象
	<input name="fundName" id="fundName" type="hidden" value='<DM:DocumentTag field="fundName"/>'
	onpropertychange="{
		if(''==this.value){
			return;
		}
		var vtime = document.f1.sys_createtime.value;
		vtime = vtime.substring(0,10).replace(/\-/gi,'');
		document.f1.sys_title.value = vtime+'【'+this.value+'】'+'<%=strshowName%>'; 
	
	}">
	<input type="button" onclick="selectFundInfo()" value="&nbsp;请点击选择基金&nbsp;">
	<U><span id="showFund"><DM:DocumentTag field="fundName"/></span></U>
</td>
		
		
$(function() {
	if( window.ActiveXObject) { 
		//IE
	}else{
		//其他:谷歌...
		var intervalName;   // 定时器句柄  
		var fundNames = document.getElementById("fundName"); 
		fundNames.addEventListener("input",setTitle,false); 
		setInterval(checkChange,1000);
		
		function checkChange(){
			var intervalNames = fundNames.value;
			if(intervalNames!= intervalName){
				setTitle(fundNames);
				intervalName = fundNames.val();
			}
		}
	}
});

function setTitle(fundNames){
	if(''==fundNames.value){
		return;
	}
	var vtime = document.f1.sys_createtime.value;
	vtime = vtime.substring(0,10).replace(/\-/gi,'');
	document.f1.sys_title.value = vtime+'【'+fundNames.value+'】'+'<%=strshowName%>'; 
}

4、onchange后监听:

<select name="<%=strUserSelId%>_show" id="<%=strUserSelId%>_show" style="width:118px;margin-left:-100px" onchange="this.parentNode.nextSibling.value=this.options[this.selectedIndex].innerHTML;setUserSearchValue(this);setuserboxValue();">
	<option value='' selected>请选择</option>   
</select> 
<input name="problemer" id="problemer" type="hidden" class="tab4" size="30" value='<DM:DocumentTag field="problemer"/>'>


function setuserboxValue(){
	if( window.ActiveXObject) { 
		//IE
	}else{
		//其他:谷歌...
		var intervalName;   // 定时器句柄  
		var problemer = document.getElementById("problemer"); 
		problemer.addEventListener("input",setUserboxValue,false); 
		setInterval(checkChange,1000);
		
		function checkChange(){
			var intervalNames = problemer.value;
			if(intervalNames!= intervalName){
				var problemercode = document.getElementById("<%=strUserSelId%>_show"); 
				setUserboxValue(problemer.value);
				intervalName = problemer.value;
			}
		}
	}
}

function setUserboxValue(obj)
{
	document.getElementById("userbox").value = obj
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159248.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux find命令详解_linux du命令详解

    linux find命令详解_linux du命令详解find命令格式:findpath-option[-print][-exec-okcommand]{}\;find命令的参数:path:要查找的目录路径。~表示$HO

    2022年7月30日
  • 机器学习中【回归算法】详解

    机器学习中【回归算法】详解关注微信公众号【Microstrong】,我写过四年Android代码,了解前端、熟悉后台,现在研究方向是机器学习、深度学习!一起来学习,一起来进步,一起来交流吧!本文同步更新在我的微信公众号里,地址:https://mp.weixin.qq.com/s?__biz=MzI5NDMzMjY1MA==&amp;mid=2247483935&amp;idx=1&amp;sn=5e1c55c76…

    2022年8月21日
  • 深度学习之GoogLeNet解读

    深度学习之GoogLeNet解读提出背景相关工作基本思想及过程提出背景 始于LeNet-5,一个有着标准的堆叠式卷积层冰带有一个或多个全连接层的结构的卷积神经网络。通常使用dropout来针对过拟合问题。 为了提出一个更深的网络,GoogLeNet做到了22层,利用inception结构,这个结构很好地利用了网络中的计算资源,并且在不增加计算负载的情况下,增加网络的宽度和深度。同时,为了优化网络质量,采用了Hebbian原

    2022年8月14日
  • Python 数组操作_python中数组的表示形式

    Python 数组操作_python中数组的表示形式文章目录前言 一、numpy是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言在python中本身有着列表等数据结构,但是列表只是一种数据的存储容器,不具备任何计算能力。故引入数组的概念。提示:以下是本篇文章正文内容,下面案例可供参考一、numpy是什么?NumPy是一种非常常用的第三方模块,在学习数据分析及挖掘时经常能够用到他。接下来就阐述一些使用numpy进行的基本操作。二、使用步骤1.引入库代码如下(示例):i…

    2022年8月13日
  • 动态规划优缺点_巴西优化航空路线利用率

    动态规划优缺点_巴西优化航空路线利用率C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为 1 条。C 国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。商人阿龙来到 C 国旅游。当他得知“同一种商品在不同城市的价格可能会不同”这一信息之后,便决定在旅游的同时,利用商品在

    2022年8月8日
  • 微信公众平台宣布增加接口IP白名单提高安全性

    微信公众平台宣布增加接口IP白名单提高安全性

    2021年10月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号