是否可以在IE中使用所需的属性?

wil*_*ill 6 forms validation jquery html5 internet-explorer

我有这样的代码:

<input required>
Run Code Online (Sandbox Code Playgroud)

在良好的浏览器中,我可以像这样使用jquery为输入添加一类错误:

$('input[required]').addClass('error');
Run Code Online (Sandbox Code Playgroud)

但它在IE中不起作用.否则,我会诉诸于此,但它不是那么整洁......

HTML:

<input data-required=true>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

if( $('input').data('required') ) $('input').addClass('error');
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢,
威尔

编辑:

是的,我正在使用HTML5.

IE实际上解释了这个:

<input required>
Run Code Online (Sandbox Code Playgroud)

如:

<input required="">
Run Code Online (Sandbox Code Playgroud)

所以有可能检查这样:

if( $('input').prop() == undefined )
Run Code Online (Sandbox Code Playgroud)

但同样,这是一种混乱的做事方式,特别是考虑到只有IE才有问题.此代码适用于所有其他浏览器.

我基本上问是否有一种检查方法是跨浏览器和整洁.我也许是一个完美主义者!;)

Moh*_*sen 4

usingdata-属性是安全的,如果您使用它们,您的页面将有效。但你需要报价来证明你的价值。我一直在使用数据属性。我们支持IE7。

<input data-required="true">
Run Code Online (Sandbox Code Playgroud)

或者甚至您可以在这样的情况下保留该值:

<input data-required>
Run Code Online (Sandbox Code Playgroud)

如果您经常使用数据属性,那么最好知道您可以使用datasetChrome 开发人员工具(和 Firebug)中的属性通过控制台访问元素的数据属性。dataset在代码中使用 API 尚不安全。IE8 不支持

在你的控制台中写:

$$('input')[0].dataset
Run Code Online (Sandbox Code Playgroud)

并获取数据属性值和属性!