【问题标题】:How can I check if a submit button is clicked and not an enter press on a page?如何检查是否单击了提交按钮而不是页面上的输入?
【发布时间】:2022-03-17 07:00:10
【问题描述】:

想象一下这段 html:

​<form>
    <input type="text">
    <input type="submit" id="a">
</form>​​​​​​

还有这段 Javascript

document.getElementById('a').onclick = function (e) {
    alert(e.type);
};​​​​

即使您在文本字段中按 Enter,警报也会始终显示“点击”。

如何检查按钮是否真的被点击?

【问题讨论】:

标签: javascript html forms


【解决方案1】:

想象一下这段 html:

<form>
    <input type="text">
    <input type="button" id="a">
</form>

还有这段 Javascript

document.getElementById('a').onclick = function (e) {
    this.form.submit();
};​​​​

不会有任何混淆。

几乎没有理由在现代 Web 应用程序中使用 input type="submit"

【讨论】:

  • 这在语义上不正确,按钮不能用于提交表单
  • HTML、CSS、javascript 中的大多数内容如果只将它们视为语义元素,就没有意义,也不允许构建复杂的 Web 应用程序。实用并保持简单。不要忘记,在 ajax 时代,表单很少是只是发送到服务器的被动对象。如果键是输入,那么真正错误的是检查 onClick...
  • @dystroy Unobtrusive Javascript 禁用 Javascript 的每个人都无法使用表单/站点。
  • 我不认为它们只是语义元素,但它们的语义是它们的一部分。如果您完全忽略语义,您也可以回到表格布局。在我看来,除非没有其他选择,否则您应该为工作使用正确的元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 2018-03-04
  • 1970-01-01
  • 2019-03-31
相关资源
最近更新 更多