我有这样的代码:
<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才有问题。此代码适用于所有其他浏览器。
我基本上都在询问是否有一种检查方法是跨浏览器和整洁。我也许是一个完美主义者! ;)
答案 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>