2011-09-30 77 views
6

我有這樣的代碼:是否可以在IE中使用所需的屬性?

<input required> 

在好的瀏覽器我可以使用jQuery像這樣一類的錯誤添加到輸入:

$('input[required]').addClass('error'); 

它並不在IE瀏覽器雖然。我將訴諸這種否則,但它不是整齊...

HTML:

<input data-required=true> 

的Javascript:

if($('input').data('required')) $('input').addClass('error'); 

任何想法?

感謝,
威爾

編輯:

是啊,我使用HTML5。

IE居然將此解釋:

<input required> 

爲:

<input required=""> 

因此,它是能夠確認這樣的:

if($('input').prop() == undefined) 

但同樣,這是一個有點凌亂的做事方式,特別是考慮到只有IE纔有問題。此代碼在所有其他瀏覽器中都能很好地工作。

我基本上是問有沒有一種檢查方法是跨瀏覽器和整齊。也許我是一個完美主義者! ;)

+1

這是無效的HTML。一個有效的HTML將如下所示:''。 –

+5

@DarinDimitrov''絕對是有效的HTML。 – duri

+1

這在很大程度上取決於您的文檔類型。 [HTML5允許](http://diveintohtml5.org/forms.html#required) –

回答

4

使用data-屬性是安全的,如果你使用他們你的頁面將是有效的。但是你需要爲你的價值選擇分身。我一直在使用數據屬性。我們支持IE7。

<input data-required="true"> 

甚至可以離開像這樣的情況下,值:

<input data-required> 

如果您使用的數據屬性的時候則是很好的瞭解,您可以使用Chrome的開發者工具dataset屬性( Firebug)通過控制檯訪問元素的數據屬性。在您的代碼中使用dataset API尚不安全。它不是在IE8

支持在控制檯中寫:

$$('input')[0].dataset 

和獲取數據的屬性值和屬性!

+0

這工作得很好。我只是使用了所需的數據並檢查了它的存在。乾杯! – will

2

嘗試使用required="required",它可能會使舊的瀏覽器更好。

重要提示:這仍然是非常有效的寫<input required>

+4

不會在IE9上工作 –

相關問題