1

我想以这样一种方式服务器渲染一个 HTML 表单,直到它被我的 JavaScript 异步增强之前它是不可提交的。

看起来元素(MDN)disabled没有属性。form

我可以disabled向提交按钮添加一个属性(然后在准备好后使用 JavaScript 将其删除),但用户仍然可以通过聚焦任何输入并按下 来提交表单Enter

有什么方法可以防止在没有 JavaScript 的情况下提交(只是将表单完全隐藏在服务器呈现的 HTML 中,然后用 JS 取消隐藏)?

4

3 回答 3

1

你可以简单地做

onsubmit="return false" 

form标签上:

<form onsubmit="return false">
  <label>input
    <input type="text" name="input" name="a" />
  </label>
  <input type="submit" value="submit" />
</form>

于 2018-09-19T12:18:21.327 回答
1

抱歉,回答我自己的问题 - 事实证明,只需禁用提交按钮,就很容易使表单无法提交(至少在 Chrome 69 中)。

当唯一的提交按钮被禁用时,即使聚焦文本字段并按下Enter也不会提交表单。

于 2018-09-19T12:23:50.633 回答
1

对提交按钮使用type="button"属性,然后将其更改为type="submit"

于 2018-09-19T12:14:46.430 回答