Javascript 检测是否已从表单提交加载页面

Javascript 检测是否已从表单提交加载页面,javascript,php,forms,post,Javascript,Php,Forms,Post,我有一个带有以下代码的搜索表单: <form id="search_form" action="index.php" method="post"> 我在这个页面上还有javascript,它使用addEventListener在页面加载时运行。由于表单提交会重新加载页面,因此脚本会再次运行。这是不可取的。因此,我希望检测表单是否已提交,并避免调用javascript。如果Javascript能够检测到设置了$\u POST['search'],我就可以这样做 另一种说法是。。。如果

我有一个带有以下代码的搜索表单:

<form id="search_form" action="index.php" method="post">
我在这个页面上还有javascript,它使用addEventListener在页面加载时运行。由于表单提交会重新加载页面,因此脚本会再次运行。这是不可取的。因此,我希望检测表单是否已提交,并避免调用javascript。如果Javascript能够检测到设置了$\u POST['search'],我就可以这样做

另一种说法是。。。如果页面是从表单提交重新加载的,我希望阻止最初加载的脚本


如何使用vanilla JS实现我的目标?

只需将所需的JavaScript代码放入PHP条件中,该条件仅在未设置$\u POST值时运行:

<?php
if (!isset($_POST['search'])) {
?>
  <script>
  // Code to run on initial page load
  </script>
<?php
}
?>
或者,如果为了代码清晰,您更愿意将其包含在PHP中:

<?php
if (!isset($_POST['search'])) {
  echo "<script>Code to run on initial page load</script>";
}
?>

您可以在表单提交var submitted=true中将变量设置为true,将其保存在本地存储中,然后在检查变量的if语句中运行JS。不要使用form或formElement.onsubmit=e=>{e.preventDefault;}。使用XMLHttpRequest,无论哪种方式。如果且仅当设置了referer,您可以检查referer是否为同一页面ifdocument.referer==document.url谢谢大家!黑曜石下面的答案对我来说非常有用。这是完美的。
<?php
if (!isset($_POST['search'])) {
  echo "<script>Code to run on initial page load</script>";
}
?>