我想服务器渲染一个HTML表单,使其在被我的JavaScript异步增强之前不可提交。
看起来form
元素 (MDN( 没有disabled
属性。
我可以在提交按钮中添加一个disabled
属性(然后在准备好后使用 JavaScript 将其删除(,但用户仍然可以通过聚焦任何输入并按Enter
来提交表单。
有没有办法防止没有JavaScript的提交(除了将表单完全隐藏在服务器渲染的HTML中,并使用JS取消隐藏它(?
你可以简单地做
onsubmit="return false"
在form
标记上:
<form onsubmit="return false">
<label>input
<input type="text" name="input" name="a" />
</label>
<input type="submit" value="submit" />
</form>
使用type="button"
属性到提交按钮,然后将其更改为type="submit"
抱歉,回答我自己的问题 - 事实证明,只需禁用提交按钮即可轻松使表单无法提交(至少在 Chrome 69 中(。
当唯一的提交按钮被禁用时,即使聚焦文本字段并按Enter
也不会提交表单。