【问题标题】:HTML form onsubmit="return false;" not workingHTML 表单 onsubmit="return false;"不工作
【发布时间】:2019-05-24 16:41:56
【问题描述】:

请看下面sn-phttps://jsfiddle.net/simbunch/1kvfg7h0/3/

如您所见,脚本使用的是纯 JS。事实证明,当使用纯 JS 选择表单时,onsubmit="return false" 不起作用,而如果我将提交代码更改为 $('#myform').submit(),则 onsubmit 起作用。

我的问题是,我无法编辑脚本部分(CMS 环境)。我想要做的是基本上停止提交表单。提前致谢!

-edit- 该问题似乎与 Firefox 有关。 sn-p 在 Chrome 中按预期工作。

【问题讨论】:

  • 发现问题与火狐有关。如果我在 Chrome 上运行 sn-p,它会按预期运行。

标签: javascript forms onsubmit


【解决方案1】:

返回 false 是 JQuery 约定。它在 vanilla Javascript 中不起作用。

要达到类似的效果,您需要使用传递给事件处理程序的“e”参数,并调用其stopPropagationpreventDefault 方法……但由于@ 中根本没有参数987654324@ 属性我不会想到它甚至可能来自这样的属性。

但是,这个答案 (Access event to call preventdefault from custom function originating from onclick attribute of tag) 提出了一种方法。我没有亲自尝试过,所以YMMV。

【讨论】:

    【解决方案2】:

    您只能在表单标签的 onsubmit 属性中执行函数,返回 false 也不会执行任何操作。你可以在这里使用 event.preventDefault()。

    试试下面这样的方法

    <form id="myform" onsubmit="function (e) { e.preventDefault(); } ">
    

    【讨论】:

    • return false; 确实有效,但事实证明问题出在 Firefox 上。将您的代码插入 jsfiddle 并尝试在 Firefox 上运行它,它不会正常工作:jsfiddle.net/simbunch/1kvfg7h0/10
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多