【问题标题】:Is it possible to use the required property in IE?是否可以在 IE 中使用所需的属性?
【发布时间】:2011-11-28 15:06:08
【问题描述】:

我有这样的代码:

<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 存在问题。此代码在所有其他浏览器中都能完美运行。

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

【问题讨论】:

  • 这是无效的 HTML。有效的 HTML 如下所示:&lt;input required="required" /&gt;.
  • @DarinDimitrov &lt;input required&gt; 绝对是有效的 HTML。
  • 这在很大程度上取决于您的文档类型。 HTML5 allows it
  • 奇怪,验证器 (validator.w3.org/#validate_by_input) 说它无效。可能因为它仍然是一个草案,它没有正确实施。
  • &lt;form action="index.php" method="post"&gt;&lt;input required&gt;&lt;/form&gt; 为我验证。 @DarinDimitrov

标签: jquery forms internet-explorer validation html


【解决方案1】:

尝试使用required="required",它可能会让旧版浏览器更喜欢它。

重要提示:写&lt;input required&gt;

仍然非常有效

【讨论】:

    【解决方案2】:

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

    <input data-required="true">
    

    或者你甚至可以在这种情况下保留该值:

    <input data-required>
    

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

    在你的控制台写:

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

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

    【讨论】:

    • 这很好用。我只是使用了 data-required 并检查了它的存在。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2022-12-03
    • 2023-02-23
    • 2016-12-09
    相关资源
    最近更新 更多