2011-09-30 32 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上工作 –

相关问题