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

 

有的时候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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值