防止表单提交时重定向或刷新?

12 浏览
0 Comments

防止表单提交时重定向或刷新?

我已经搜索了很多页面,但找不到我的问题,所以我不得不发帖。\n我有一个表单,有一个提交按钮,当提交时,我希望它不刷新或重定向。我只想让jQuery执行一个函数。\n这是表单:\n

\n

\n \n \n

\n

\n \n \n

\n

\n \n \n

\n

\n您的消息已发送。\n这是jQuery代码:\nfunction sendContactForm(){\n $(\"#messageSent\").slideDown(\"slow\");\n setTimeout(\'$(\"#messageSent\").slideUp();$(\"#contactForm\").slideUp(\"slow\")\', 2000);\n}\n我尝试过使用和不使用表单上的action元素,但不知道我做错了什么。更让我烦恼的是,我有一个完美运行的例子:\n示例页面\n如果你想亲自看到我的问题,可以去stormink.net(我的网站),然后查看侧边栏上的“给我发送电子邮件”和“订阅RSS”。这两个都是我想让这个功能生效的表单。

0
0 Comments

防止表单在提交时重定向或刷新的原因是,当用户按下Enter键时,页面会自动刷新。为了解决这个问题,可以在表单的开放标签中设置一个action属性,将其值设为"#"。这样做可以阻止表单提交时的页面刷新。

然而,这种方法仍然无法完全解决问题,因为用户第一次按下Enter键时,页面仍然会刷新。一种不好的解决方法是尽快调用myForm.submit();,但这样会导致页面加载两次,不是一个理想的解决方案。

有人建议在onsubmit函数中使用e.preventDefault()return false来解决这个问题,并给出了一个链接以供参考。这种方法可以阻止表单提交时的页面刷新,并解决了原始问题。

需要注意的是,其中一条回答提到的方法实际上并没有解决原始问题,而是在页面重新加载后改变了URL。因此,这个回答应该被投票扣分。

要防止表单在提交时重定向或刷新,可以使用e.preventDefault()return false来阻止页面刷新,并在表单的开放标签中设置action属性为"#"。这样可以解决这个问题。

0
0 Comments

有时候在提交表单时,我们希望阻止页面的重定向或刷新。上面的代码提供了一个解决方法。

问题的原因是在点击提交按钮时,页面会默认执行表单的提交操作,导致页面的刷新。为了阻止这种默认行为,我们需要使用preventDefault()方法来阻止事件的默认操作。在这个例子中,我们使用jQuery库来绑定一个点击事件处理程序到提交按钮上,并将submitClick函数作为回调函数。在回调函数中,我们使用e.preventDefault()来阻止表单的默认提交行为。

解决方法是将点击事件处理程序绑定到提交按钮上,并将submitClick函数作为回调函数。通过将事件对象e作为参数传递给回调函数,我们可以在回调函数中使用e.preventDefault()来阻止表单的默认提交行为。

如果你不想使用jQuery库,也可以使用纯JavaScript来实现相同的功能。

0
0 Comments

问题:如何防止表单提交时的页面重定向或刷新?

原因:表单提交时,页面通常会发生重定向或刷新,这可能会导致用户体验问题。

解决方法:使用jQuery的submit事件处理函数,并返回false来阻止表单的提交。代码如下:

$('#contactForm').submit(function () {
  sendContactForm();
  return false;
});

此外,不再需要在提交按钮上使用onclick事件。提交按钮的代码如下:


需要注意的是,如果使用jQuery,应该使用e.preventDefault()方法来阻止表单提交,而不是直接返回false。具体可以参考这个[链接](http://stackoverflow.com/questions/1357118)。

另外,如果使用"return false;"来阻止表单提交,还会停止事件的传播,这可能会导致用户体验问题。例如,如果期望某个"click"事件冒泡上来,就会出现问题。

如果你对在form元素上使用return false起作用,而在button元素上却不起作用感到困惑,原因可能是事件冒泡的问题。

0