嗯,我试图通过按enter键提交一个表单,但没有显示提交按钮。如果可能的话,我不想进入JavaScript,因为我希望所有东西都能在所有浏览器上工作(我所知道的唯一JS方式是事件)。
现在表单看起来是这样的:
<form name="loginBox" target="#here" method="post">
<input name="username" type="text" /><br />
<input name="password" type="password" />
<input type="submit" style="height: 0px; width: 0px; border: none; padding: 0px;" hidefocus="true" />
</form>
这很有效。当用户按下回车键时,提交按钮就会正常工作,但在Firefox、IE、Safari、Opera和Chrome浏览器中不会显示该按钮。然而,我仍然不喜欢这个解决方案,因为很难知道它是否适用于所有平台和所有浏览器。
谁能提出一个更好的方法?还是说这已经是最好的结果了?
2022年更新:用这个代替
<input type="submit" hidden />
Notice - Outdated answer |
Please do not use position: absolute in the year 2021+. It's recommended to use the hidden attribute instead. Otherwise, look down below and pick a better, more modern, answer. |
Try:
<input type="submit" style="position: absolute; left: -9999px"/>
这会把按钮推到屏幕的左边。这样做的好处是,当CSS被禁用时,你会得到优雅的降级。
更新- IE7的解决方案
正如Bryan Downing +使用tabindex来防止tab到达这个按钮(由Ates Goral)所建议的:
<input type="submit"
style="position: absolute; left: -9999px; width: 1px; height: 1px;"
tabindex="-1" />
我使用了很多UI框架。它们中的许多都有一个内置的类,您可以使用它来可视化地隐藏内容。
引导
<input type="submit" class="sr-only" tabindex="-1">
角材料
<input type="submit" class="cdk-visually-hidden" tabindex="-1">
创建这些框架的天才们将这些风格定义如下:
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.cdk-visually-hidden {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
outline: 0;
-webkit-appearance: none;
-moz-appearance: none;
}
2022年更新:用这个代替
<input type="submit" hidden />
Notice - Outdated answer |
Please do not use position: absolute in the year 2021+. It's recommended to use the hidden attribute instead. Otherwise, look down below and pick a better, more modern, answer. |
Try:
<input type="submit" style="position: absolute; left: -9999px"/>
这会把按钮推到屏幕的左边。这样做的好处是,当CSS被禁用时,你会得到优雅的降级。
更新- IE7的解决方案
正如Bryan Downing +使用tabindex来防止tab到达这个按钮(由Ates Goral)所建议的:
<input type="submit"
style="position: absolute; left: -9999px; width: 1px; height: 1px;"
tabindex="-1" />