我得出的结论是,确保按钮/提交输入在浏览器中保持相同的唯一方法是使用 div 重新创建它们。创建按钮输入很容易,因为您可以像在按钮上一样将点击事件附加到 div 上。创建提交输入几乎没有任何困难。我使用 jQuery 解决了这个问题,方法是声明一个类,例如“提交”,并将提交按钮功能添加到加载该类的所有元素。这是一个例子:
// On page load:
$('.submit').on('click', function(e) {
$(this).closest('form').submit();
});
提交类不在表单中的div在单击时不会执行任何操作。
如果向元素添加tabindex="n"
(其中n
是数字),也可以使用 tab 来聚焦,就像普通按钮一样。:focus
您还可以通过使用css 伪类来设置它的样式以显示它的焦点。然后您可以使用空格或回车键单击带有此事件处理程序的按钮:
$('.submit').on('keypress', function(e) {
if (e.keyCode == 13 || e.keyCode == 32)
$(this).closest('form').submit();
});
(我匆忙写了最后一个片段,并没有实际测试过。如果您发现其中有错误或测试成功,请相应地编辑此答案。)