我有一个向导式的HTML表单,其中有一排用于后退/下一步/取消操作的提交按钮(按此顺序)。该表单还可以包含不同数量的输入字段,如文本字段,单选按钮,复选框,下拉列表(选择标签)和文本区。客户需要“下一步”按钮作为默认操作,以便如果用户键入文本字段并按下Enter键,则应提交表单,就好像他们点击了“下一步”按钮一样。如何确保按CSS颠倒的按钮均匀分布?
问题是,在这种情况下,浏览器(至少IE,这是我们客户使用的99%)使用表单中声明的第一个按钮提交表单,正如您从上面的列表中看到的那样是“后退”,而不是“下一步”。
一个修复我读到是声明以相反的顺序返回和下一步按钮(即,接着第一个),然后使用CSS围绕正确的方式显示它们,像这样:
<html>
<head>
<style type="text/css">
.formSubmitButtons {
direction: rtl;
float: left;
}
.formSubmitButtons input {
direction: ltr;
float: none;
}
</style>
</head>
<body>
<form action="blah" method="POST" enctype="application/x-www-form-urlencoded">
<div class="formSubmitButtons">
<input type="submit" name="btnNext" value="Next">
<input type="submit" name="btnBack" value="Back">
</div>
<input type="submit" name="btnCancel" value="Cancel">
<br/>Some text fields go here...
</form>
</body>
</html>
这提供了期望的行为和按钮顺序在Firefox和IE中,但取消按钮相对于其他按钮的间距不一致。在IE6中它看起来不错,但是在Firefox 3.0.5中,取消按钮被阻塞在Next按钮上。
有谁知道我需要编织哪些CSS魔法才能让这三个按钮在两个浏览器中均匀分布?
(通过排序按钮下一页/返回/取消回避问题不是一个选项)
(也感谢大家谁提出基于JavaScript的解决方案,但不是所有的客户允许JS,所以它必须是一个直接的HTML和/或CSS解决方案)
这里就是我最后做的是工作很好(基于克莱的建议):
<!--
<input type="submit" name="btnNext" style="position: absolute; left: -9999px" tabindex="-1">
<input type="submit" name="btnBack" value="Back">
<input type="submit" name="btnNext" value="Next">
<input type="submit" name="btnCancel" value="Cancel">
-->
(忽略了包装的注释标记,他们只是让你可以看到HTML)
个人而言,我更喜欢一个Javascript解决方案,它允许您将默认提交按钮更改为您选择的任何按钮。减少混乱并为您提供灵活性。 – cbp 2009-03-04 05:16:48