2010-11-03 61 views
0

我有一個使用以下CSS選擇一個驗證類(原型1.6.1):原型選擇問題IE 8

$$('*[class*=validate]') 

的想法是我有以「驗證」啓動元件的各種類名稱,即'validate-numeric'或'validate-url'。所以,我想要在class屬性中使用validate這個單詞來獲取任何元素。

它適用於任何其他瀏覽器,包括IE 6 & 7.在IE 8中,似乎沒有選擇正確的元素。我試圖在IE的開發人員工具中進行一些調試,但控制檯總的來說只有智慧,它只能爲數組和對象輸出{...}。有什麼我失蹤?是的,這是一個CSS3選擇器,但我認爲它仍然在Prototype中實現,並且都可以使用它。

+0

如果您停在斷點處,您可以使用IE控制檯中的Watch窗口查看對象屬性。 – 2010-11-03 20:45:12

+0

您是否在使用http://tetlaw.id.au/view/javascript/really-easy-field-validation?如果沒有,那就考慮一下吧,這會爲您節省重新發明另一個車輪的麻煩。 – clockworkgeek 2010-11-03 21:18:19

回答

0

如果你還沒有想出來,這裏有一個替代方案。分類所有的元素,例如:

<div class="validate numeric">foo</div> 
<div class="validate url">bar</div> 
<div class="validate email">world</div> 

那麼這肯定會在IE8的工作:

$$('.validate'); 

我猜你正在編寫表單驗證一些代碼,這些都是可能發生的錯誤。我的模式中的CSS將

.validate { color: red } 
.numeric { margin: 1px } 
.url { margin: 2px; } 
.email { padding: 3px; } 

而你的CSS架構不會是模塊化的 - 從而使其難以維持爲您添加更多的錯誤類型。

.validate_numeric, 
.validate_url, 
.validate_email { 
color: red; 
} 

.validate_numeric { margin: 1px } 
.validate_url { margin: 2px; } 
.validate_email { padding: 3px; }