IE7缩小了输入问题

时间:2012-07-31 17:12:56

标签: javascript jquery html css

我有一些输入,我在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规则中添加了重要的声明,纯粹是为了确保它具有最高的可能特异性。正是这种重要性揭示了盒式化代码中的一个小错误,因为它会逐渐计算边框宽度(或者更简单地说它不会从之前的计算中删除它)。

我会尽快举个例子。

3 个答案:

答案 0 :(得分:1)

可能jQuery与IE7中的问题无关。问题更可能是由于与errorColor类相关联的CSS。

答案 1 :(得分:0)

我没有更多数据的猜测是:

a)该类未能被删除并继续累积元素。

b)这是一些IE7 100%宽度的怪异,尝试99%或自动,看看它是否有帮助。

答案 2 :(得分:0)

这是boxsizing.htc脚本。不要将!important声明与此脚本一起使用,因为它在计算刷新时递增值...因此缩小输入