我有一个有三个提交按钮的表单,如下所示:
<input type="submit" name="COMMAND" value="‹ Prev">
<input type="submit" name="COMMAND" value="Save">
<input type="reset" name="NOTHING" value="Reset">
<input type="submit" name="COMMAND" value="Next ›">
<input type="button" name="NOTHING" value="Skip ›" onclick="location = 'yada-yada.asp';">
该行按钮是提交,重置和JavaScript按钮的混合。按钮的顺序可能会改变,但无论如何保存按钮保持在prev和next按钮之间。这里的问题是,当用户点击“enter”提交表单时,post变量“COMMAND”包含“Prev”; 正常,因为这是表单上的第一个提交按钮。然而,我希望当用户通过输入按钮提交表单时触发“下一步”按钮。有点像把它设置为默认的提交按钮,即使它之前有其他按钮。
发布于 2018-03-14 15:28:56
您可以使用浮动有效地改变顺序。例如:
<p id="buttons">
<input type="submit" name="next" value="Next">
<input type="submit" name="prev" value="Previous">
</p>
有:
#buttons { overflow: hidden; }
#buttons input { float: right; }
将有效地颠倒顺序,因此“下一步”按钮将成为按回车键触发的值。
这种技术将涵盖很多情况,而不必诉诸更多的黑客JavaScript方法。
发布于 2018-03-14 16:18:40
第一个按钮始终是默认的; 它不能改变。虽然可以尝试使用JavaScript进行修复,但表单在浏览器中会出现意外的行为而没有脚本,并且需要考虑一些易用性/可访问性的案例。如果在该脚本中单击某个表单中的某些文本并按Enter键,那么错误的按钮将被提交.....如果在该示例中给出了真正的默认按钮是'删除'的话,将特别危险,
我的建议是忘记使用脚本黑客重新分配默认设置。随着浏览器的流程,首先放置默认按钮。如果无法破解布局以向提供所需的屏幕上订单,那么可以通过首先在源中使用一个虚拟不可见按钮来执行此操作,该按钮的名称/值与要默认设置的按钮具有相同的名称/值:
<input type="submit" class="defaultsink" name="COMMAND" value="Save" />
.defaultsink {
position: absolute; left: -100%;
}
https://stackoverflow.com/questions/-100007617
复制相似问题