`
happyqing
  • 浏览: 3193570 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解决ie8下onpropertychange事件间歇性失效的问题

    博客分类:
  • js
阅读更多

 

有的时候onpropertychange事件一下好用,一下不好用

网上有的说去掉<!DOCTYPE html>就好了,

我试了下,虽然然管用,但doctype是推荐加上的,去掉他有些东西会乱。

 

如果文本框的样式中有width属性,没有height属性就会出现此问题,不知道是什么原因

<input type="text" id="name" name="name" value="<c:out value='${name}'/>" style="width:150px;" maxlength="7" />

 

解决办法

给样式中有宽度,没有高度的,加上高度。

 

/**
 * 为form中的文本框绑定验证最大长度事件(按字节)
 * 
 * @param fromName
 */
function bindMaxLength(fromName,height){
	if(typeof(height) == "undefined"){
		height = 16;
	}
	$("form[name="+fromName+"] input[type=text]").each(function(){
		if(typeof ($(this).attr("maxlength"))!="undefined"){
//			alert("width"+this.style.width);
//			alert("width"+$(this).css("width")); //会取到默认宽度
			//解决ie8下onpropertychange事件间歇性失效的问题
			if(this.style.width != "" && this.style.height==""){
				this.style.height = height+"px";
			}
			$(this).bind('input propertychange', function() {
					var inputLength = this.value.replace(/[^\x00-\xff]/g, 'xxx').length;
					var maxlength = parseInt($(this).attr("maxlength"));
					if(inputLength > maxlength){
						this.value = this.value.subStringByBytes(maxlength);
					}
			}); 
		}
	});
}

 

subStringByBytes

JS按字节计算字符串长度,按字节截取字符串

http://happyqing.iteye.com/blog/1979816

分享到:
评论

相关推荐

    JavaScript的onpropertychange事件

    在IE中,你可以为这个输入框绑定`onpropertychange`事件,当输入框的`value`属性发生变化时,事件就会被触发。 ```javascript document.getElementById('myInput').onpropertychange = function(event) { if ...

    兼容Firefox和IE的onpropertychange事件oninput

    这些事件在不同浏览器中有着不同的表现和兼容性,尤其是在Internet Explorer (IE) 和 Firefox之间。 `onpropertychange` 是IE浏览器特有的事件,当对象的任何可枚举属性发生变化时,它都会触发。特别是在处理表单...

    oninput,onpropertychange,onchange的用法和区别

    但是,onpropertychange 事件也存在一些问题,在 IE 浏览器中,它存在一个 bug,即在用户输入第一个字符时,onpropertychange 事件不会被触发。 最后,让我们来了解 oninput 事件。oninput 事件是 onpropertychange...

    javascript开发中使用onpropertychange,oninput事件解决onchange事件的不足

    在IE下,可以用onpropertychange来代替onchange事件,当文本框有任何变化时,能立即触发此事件. 这样一来问题就解决了. 那其他浏览器呢,onpropertychange可是IE的专利. 接下来就是oninput事件了. 但是oninput有个诡异,...

    jquery下onpropertychange事件的绑定方法

    为了解决这个问题,引入了onpropertychange事件,它能够监听到元素属性的任何变化,包括由JavaScript引起的值变化。在早期的IE浏览器中,onpropertychange事件被广泛支持,其他浏览器则后来也逐渐支持,但表现可能...

    onchange和onpropertychange

    标题中的“onchange”和“onpropertychange”是JavaScript中两个与事件相关的属性,它们都是在HTML元素上触发特定行为的事件监听器。在本文中,我们将深入探讨这两个事件的区别、用法以及如何在实际开发中应用它们。...

    js监听输入框值的即时变化onpropertychange、oninput.docx

    onChange 在属性值转变时还必需使得当前元素失去焦点(onblur)才可以激活该事件,onpropertychange 则可以在IE下捕获元素的属性变化。 了解了这两者的不同之后,我们可以使用onpropertychange 来监听输入框值的即时...

    js onpropertychange输入框 事件获取属性

    当一个HTML元素的属性改变的时候,都能通过onpropertychange来捕获。例如&lt; input name=”text1″ ... 但onpropertychange只有IE支持,FireFox下的怎么解决呢?firefox的事件oninput,效果和IE的onproperchange相同。

    js与jquery实时监听输入框值的oninput与onpropertychange方法.docx

    onpropertychange 事件是 IE9 以下版本专有的事件,该事件在用户界面转变或者使用脚本直接修改内容时触发。该事件可以实时监听输入框值的变化,并且可以与 oninput 事件结合使用以兼容 IE9 以下版本。 实例分析:...

    JS中onpropertychange和onchange事件区别小结

    也就是说:onpropertychange事件在用键盘每改变一下文本框的值或用js改变其值便会触发一下,而onchange只有在用键盘改变其值,然后在失去焦点(onblur)后才触发,用js改变其值不能触发!onpropertychange和onchange都...

    asp.net关于onpropertychange和oninput事件实现代码

    根据这个思路,首先需要解决的无非是确定文本框的什么事件可以满足要求,当时第一个想到的是onkeydown或者onkeypress,在试的过程中发现再输入中文时,无法响应,因为输入方会将焦点给屏蔽了。在网上寻觅了一会发现...

    js中的onchange和onpropertychange (onchange无效的解决方法)

    本文将详细讲解这两个事件的区别以及如何解决 `onchange` 事件在某些情况下的无效问题。 `onchange` 事件是JavaScript中用于监听表单元素(如输入框、选择框等)或某些可触发改变状态的元素(如复选框)在用户进行...

    js监听表单value的修改同步问题,跨浏览器支持.docx

    在IE浏览器中,这个问题可以通过`onpropertychange`事件来解决,但在Firefox和其他非IE浏览器中,需要采用不同的策略。 首先,开发者尝试使用`onchange`事件,但发现这个事件只有在文本框失去焦点时才会触发,无法...

    js与jquery实时监听输入框值的oninput与onpropertychange方法

    主要介绍了js与jquery实时监听输入框值的oninput与onpropertychange方法,实例分析了oninput与onpropertychange实现下拉框里自动匹配关键字实时监听文本框value值变化的功能,需要的朋友可以参考下

    jquery keypress,keyup,onpropertychange键盘事件

    然而,需要注意的是,标准的 `onpropertychange` 事件在Firefox及其他非IE浏览器中是不可用的。 对于需要兼容所有主流浏览器的项目而言,如果直接使用 `onpropertychange` 事件,会导致在Firefox中无法正常工作。...

    关于onchange事件在IE和FF下的表现及解决方法

    为了解决这个新问题,作者介绍了onpropertychange事件,这是IE特有的一个事件,它会在元素属性发生改变时触发,而不用等待元素失去焦点。因此,作者给出的最终解决方案是,为IE浏览器绑定onpropertychange事件,而为...

Global site tag (gtag.js) - Google Analytics