我有一个帐户设置表单,底部有多个<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" />
答案 0 :(得分:1)
根据HTML5规范,
4.10.22.2隐式提交
form元素默认按钮是submit button中tree 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上的第一个提交按钮的浏览器激活,只需单击最后一个按钮即可发布表单 - 这样就解决了我的问题。