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

时间:2011-09-30 16:35:31

标签: jquery forms internet-explorer validation html5

我有这样的代码:

<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才有问题。此代码适用于所有其他浏览器。

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

2 个答案:

答案 0 :(得分:4)

使用data-属性是安全的,如果您使用它们,您的页面将有效。但是你需要为你的价值提供qoutation。我一直在使用数据属性。我们支持IE7。

<input data-required="true">

甚至你可以在这种情况下留下价值:

<input data-required>

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

在控制台中

写:

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

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

答案 1 :(得分:2)

尝试使用required="required",可能会让老版浏览器更好。

重要提示:编写<input required>

仍然非常有效