2012-07-31 105 views
0

我有一些輸入,我對keyup進行了驗證,除了在IE7中使用每個按鍵縮小輸入外,它工作得非常好。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

您能否顯示與您要添加和刪除的類相關的css? – Jrod 2012-07-31 17:14:48

+0

也使小提琴,所以我們可以看到這種行爲 – Huangism 2012-07-31 17:45:05

+0

如果你在'errorColor'類中設置'height',它不會在ie7上工作。改用'padding'。 – Jashwant 2012-07-31 19:52:03

回答

0

這是boxsizing.htc腳本。不要在這個腳本中使用!important聲明,因爲它會在計算刷新時增加值...因此縮小的輸入

1

可能jQuery與IE7中的問題無關。這個問題更可能是由於與errorColor類相關的CSS。

0

我沒有更多的數據最好的猜測是:

一)類未能得到去除,不斷積累的元素。

b)這是一些IE7 100%寬度的怪異,嘗試99%或自動,看看它是否有幫助。

+0

我想,猜測應該是一個評論:) – Jashwant 2012-07-31 19:53:26

+0

有沒有一個StackOverflow禮節頁?在各種情況下,我並不總是知道在這個網站上應該做什麼。我回答的主要原因是因爲提問者沒有提供足夠的信息來做任何事情,但是沒有受過教育的猜測。其他人通過評論要求獲得更多信息,但沒有一個已經實現。在我之前的答案,以「可能...」開頭的那個並沒有什麼不同。不是大多數StackOverflow的問題都在某種意義上被猜測出來嗎?人們試圖提供解決方案(通常是失敗),只有一個被選中。 – Serhiy 2012-08-01 04:22:47

+0

Serhiy,受過教育的猜測永遠比沒有好! – sidonaldson 2012-08-08 09:03:02