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