【问题标题】:iOS Safari <button disabled></button> doesn't disable?iOS Safari <button disabled></button> 没有禁用?
【发布时间】:2013-11-07 23:36:02
【问题描述】:

我正在检查我在 iPad 上制作的表格,似乎将 disabled 添加到 &lt;button&gt; 标签实际上并没有禁用按钮。

disabled 添加到&lt;input&gt; 标签有效,但不适用于&lt;button&gt;

所以

&lt;input type = "text" disabled /&gt;

有效,但是

&lt;button disabled&gt;Hola&lt;/button&gt;

没有。关于解决此问题的方法的想法?还是只是一个 Safari 错误?

【问题讨论】:

    标签: html ios safari


    【解决方案1】:

    这个 iOS Safari 错误很可怕。 iPad 是否支持闪烁标签?据我所知,你真的不能像&lt;button&gt; 那样设计&lt;input&gt;。因此,如果您有一个&lt;button&gt;&lt;span&gt; 的样式或&lt;img&gt;button 旁边,&lt;input&gt; 不是要走的路。而是假装它,让你的按钮表现得像它具有“禁用”属性。

    为您的按钮添加一个类:

    &lt;button class='ipad-disabled'&gt;&lt;/button&gt;

    然后检查该按钮是否具有'ipad-disabled'类,如果有,则单击该按钮时不会发生任何事情:

    $('button').on('click', function () {
        if (!$(this).hasClass('ipad-disabled')) {
            doSomething(this);
        }
    });
    

    然后,当您需要启用 &lt;button&gt; 时,删除“ipad-disabled”类:

    $('button').removeClass('ipad-disabled');
    

    【讨论】:

      【解决方案2】:

      您可以在&lt;input /&gt; 标记上使用disabled 属性,但不能在&lt;button /&gt; 标记上使用。按钮没有正式贬值,但因为你可以这样做

      <input type="submit" value="Click Me">
      

      用于表单提交功能和

      <input type="button" value="Click Me">
      

      对于一个普通的普通按钮来说,拥有一个完全不同的标签并没有真正意义。此外,您可以通过添加 disabled 来禁用提交和常规按钮

      <input type="submit" value="You can't Click Me" disabled>
      <input type="button" value="Click Me" disabled>
      

      【讨论】:

        【解决方案3】:

        我在我的家用 iPad 上检查了这个。你是对的,button 标签不起作用,但这些标签起作用:

        <input type="button" value="Go on, click me!">
        

        <input type="submit" value="Go on, click me!">
        

        希望能解决您的问题。您可以使用&lt;button&gt;&lt;/button&gt; 执行任何操作,也可以使用&lt;input type="button"&gt;&lt;input type="submit"&gt; 执行任何操作。一定是 iOS Safari 的 bug。

        编辑:

        Button 在 Chrome 中确实接受 disabled,所以我将 Safari 归咎于 iOS。

        编辑:

        Fiddle

        【讨论】:

        • 我没想太多,但一个朋友向我提到了它,我开始研究它,它确实似乎是一个成熟的错误。没有其他人真正在谈论它,或者看起来如此。我知道您可以只使用&lt;input type = 'button' /&gt;,但这似乎是您的浏览器中一个相当简单的功能。你知道,符合多年前建立的功能。
        • @Nick Chapman 不幸的是,在我们互联网连接的时代(这很神奇),我们仍然需要担心浏览器的兼容性。但是,我们做到了。因此,您可以忽略那些搞砸的愚蠢浏览器,也可以尝试适应它们。通常,最好的解决方案是妥协。您不应该浪费时间尝试支持 Elinks,但要担心 IE,因为很多(太多)人仍在使用它。
        • 我希望所有这些都会有所帮助。如果您正在使用禁用按钮做某事,最好坚持使用&lt;input type="button or submit" etc...&gt;,因为如您所见,iOS Safari 以某种方式设法破坏它。如果您有任何其他问题/疑问,我会在明天(美国东部标准时间)回来。在那之前,晚安!
        猜你喜欢
        • 2016-09-12
        • 1970-01-01
        • 2021-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多