使用本机javascript停止表单提交

使用本机javascript停止表单提交,javascript,html,forms,submit,Javascript,Html,Forms,Submit,我需要通过本机javascript而不是jQuery选择表单,并防止表单提交 诀窍在于表单没有名称或id,并且不能分配给它 我的HTML: <div id="search"> <form method="get"> <input type="text" name="post"/> <input type="submit" value="Post"> </form> </div>

我需要通过本机javascript而不是jQuery选择表单,并防止表单提交

诀窍在于表单没有名称或id,并且不能分配给它

我的HTML:

<div id="search">
    <form method="get">
        <input type="text" name="post"/>
        <input type="submit" value="Post">
    </form>
</div>
到目前为止,我尝试使用document.forms[0]和document.getElementsByTagNameform[0]来选择表单,但返回的值未定义

另一个可能的解决方案是重载submit按钮的功能,但我也没有成功做到这一点。

使用querySelector和事件监听器,它几乎像jQuery

document.querySelector('#search form').addEventListener('submit', function(e) {
    e.preventDefault();
});
请注意,脚本必须位于元素之后,或者使用DOM就绪处理程序,以便元素可用

使用querySelector和事件监听器,它几乎就像jQuery

document.querySelector('#search form').addEventListener('submit', function(e) {
    e.preventDefault();
});
请注意,脚本必须位于元素之后,或者使用DOM就绪处理程序,以便元素可用


简单的方法是使用onsubmit事件处理程序

<script>
var submitHandler = function() {
  // your code
  return false;
}
</script>

<form method="get" onsubmit="return submitHandler()">....</form>
还是更容易

<form onsubmit="return false;">

简单的方法是使用onsubmit事件处理程序

<script>
var submitHandler = function() {
  // your code
  return false;
}
</script>

<form method="get" onsubmit="return submitHandler()">....</form>
还是更容易

<form onsubmit="return false;">

在表单上提交只返回false


e、 g.

在表单提交时只需返回false


e、 g.

我尝试了类似的方法,但它告诉我无法读取null的属性。我不知道它为什么会为null…这是因为没有可用的元素,它返回null,在DOM中的元素之后添加脚本,它就会工作。我尝试了类似的方法,但它告诉我我无法读取null的属性。我不知道为什么它会是null…因为没有可用的元素,它返回null,在DOM中的元素之后添加脚本,它就会工作。对不起,我应该更清楚一点,我无法以任何方式修改标记@adeneo的解决方案成功了,我的思路是正确的,我只是忘记了在HTML页面上的标记之后必须包含脚本。对不起,我应该更清楚一点,我无法以任何方式修改标记@adeneo的解决方案成功了,我走对了方向,只是忘记了在HTML页面上的标记之后必须包含脚本。