当用户按下ENTER时,CSS更改Firefox中的默认按钮

时间:2014-11-16 18:21:29

标签: css firefox button default

我有一个帐户设置表单,底部有多个<button type="submit">元素和一个<input type="submit">。如果用户点击特定按钮,一切都很好。问题是当用户没有单击特定按钮但只按ENTER时。

在IE中,最后一个按钮始终是按ENTER的默认按钮,这是我想要的方式。在Firefox中,第一个按钮始终是默认按钮 - 而不是我想要的。我怀疑必须有一种方法来设置哪个是使用CSS for Firefox的默认按钮但是我无休止地搜索并且似乎找不到任何东西。 TABINDEX属性无效。任何帮助表示赞赏!

我知道如何在jQuery中执行此操作,但表单的这一部分需要能够仅使用CSS来处理它。

<form method="post" id="loginform" action="<?php echo MBF_get_login_url(); ?>?action=register" enctype="multipart/form-data">
    <button type="submit" class="btn btn-danger" id="delete_avatar" name="delete_avatar">
        <i class="icon-trash icon-white"></i>
        <span><?php _e( 'Delete Avatar', $current_theme_locale_name ); ?></span>
    </button>
    <button type="submit" class="btn btn-danger" id="delete_bizlogo" name="delete_bizlogo">
        <i class="icon-trash icon-white"></i>
        <span><?php _e( 'Delete Logo', $current_theme_locale_name ); ?></span>
    </button>
    <input type="submit" class="link_btn margl5 margr10" value="<?php echo $mode_submit_title; ?>" id="submits" name="submits" />

2 个答案:

答案 0 :(得分:1)

根据HTML5规范,

  

4.10.22.2隐式提交

     

form元素默认按钮submit buttontree order form owner form default button的第一个activation behavior   元件。

     

如果用户代理支持让用户隐式提交表单   (例如,在某些平台上点击&#34;输入&#34;键同时显示文本   字段集中隐式提交表单),然后这样做   run synthetic click activation steps已定义default button的表单   必须使用户代理{{3}}   在那{{3}}。

因此,Firefox以标准方式执行,因此您应该尝试修复IE的行为,而不是Firefox的行为。

答案 1 :(得分:1)

以防这可能会帮助我最终得到这个简单的HTML解决方案:

<button type="submit" style="position:absolute;left:-9999px;" id="implicit_submit" name="implicit_submit"></button>    

这个不可见的按钮是我表单顶部的第一个提交按钮。它被默认为ENTER上的第一个提交按钮的浏览器激活,只需单击最后一个按钮即可发布表单 - 这样就解决了我的问题。