我有一些输入,我在keyup上验证它的效果非常好,除了在IE7中,每次按键都会缩小输入。
我调试了代码,发现它是导致效果的jQUery .addClass / .removeClass。
这只是一个简单的旧输入,没什么特别的。
有什么想法吗?
$('input#myId').bind('keyup blur',function(){
var _this = $(this);
if(_this.val().match(/^[0-9()\-\+\ ]+$/i)== null){
_this.addClass('errorColor');
}else{
_this.removeClass('errorColor');
}
});
修改
我终于找到了答案!事实证明它是boxsizing.htc脚本。此脚本动态地将填充,边距和边框转换为包含在元素的高度和宽度内。每次输入输入时,它都会尝试应用触发onupdate事件的类并刷新元素大小。在我的CSS中,我稍微懒惰,并在errorClass规则中添加了重要的声明,纯粹是为了确保它具有最高的可能特异性。正是这种重要性揭示了盒式化代码中的一个小错误,因为它会逐渐计算边框宽度(或者更简单地说它不会从之前的计算中删除它)。
我会尽快举个例子。
答案 0 :(得分:1)
可能jQuery与IE7中的问题无关。问题更可能是由于与errorColor
类相关联的CSS。
答案 1 :(得分:0)
我没有更多数据的猜测是:
a)该类未能被删除并继续累积元素。
b)这是一些IE7 100%宽度的怪异,尝试99%或自动,看看它是否有帮助。
答案 2 :(得分:0)
这是boxsizing.htc脚本。不要将!important声明与此脚本一起使用,因为它在计算刷新时递增值...因此缩小输入