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
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql和sql server一样吗_sql视图和查询的区别

    mysql和sql server一样吗_sql视图和查询的区别导读:接下来的网上商城的项目,需要用到MySQL数据库了。这个对于我来说,是一个新接触的东西,按照惯例,在刚开始学习一个东西的时候,先从宏观上去了解它。本篇博客,先介绍SQLServer的基本内容,然后介绍MySQL的基本内容,最后介绍两者之间的区别。一、SQLServer基本简介1.1,概述SQLServer是Microsoft公司推出的关系型数据库管理系统。具有使

  • 直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理

    直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理直方图均衡化的原理及实现一、直方图1.1直方图的概念在图像处理中,经常用到直方图,如颜色直方图、灰度直方图等。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的率。如下图所示1.2直方图的性质①直方图反映了图像中的灰度分布规律。它描述每个灰度级具有的像素个数,但不包含这些像素在图像中的位置信息。图像直方图不关心像

  • java代码大全及详解_史上最全JVM大全详解!java程序员细节到极致的一次,魔鬼…

    java代码大全及详解_史上最全JVM大全详解!java程序员细节到极致的一次,魔鬼…前言作为Java的从业者,在找工作的时候,一定会被问及关于JVM相关的知识。JVM知识的掌握程度,在很多面试官眼里是候选人技术深度的一个重要评判标准。而大多数人可能没有对JVM的实际开发和使用经验,接下来这一系列文章将带你深入了解JVM需要掌握的各个知识点。这也将帮助你完成从初级程序员到高级程序员的转变。由于文章篇幅原因,文末有答案和解析目录线程(详解)JVM内存区域(详解)J…

  • 部署微信定位精灵APK到Genymotion

    部署微信定位精灵APK到Genymotion转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7647072.html

  • pythoncharm注释快捷键_多行注释以什么开头

    pythoncharm注释快捷键_多行注释以什么开头PyCharm多行注释快捷键为Ctrl+/。

  • struts中的action_type object has no attribute

    struts中的action_type object has no attribute在Strust2中,有一个内置对象叫ActionContext,通过该对象可以获得之前Servlet中的对象,比如:requst对象,response对象…那么为什么可以通过ActionContext获得那些对象呢?那是因为在ActionContext内容引用了那些对象,也就是在ActionContext内部记录了那些对象的地址,看下图上图就是简单理解为什么通过Action

发表回复

您的电子邮箱地址不会被公开。

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