希望HTML表单提交不执行任何操作


70

我希望HTML表单在提交后不执行任何操作。

action=""

这是不好的,因为它会导致页面重新加载。

基本上,我希望每当按下按钮或有人Enter在键入数据后点击该键,就调用Ajax函数。是的,我可以删除表单标签并添加,只需从按钮的onclick事件中调用该函数即可,但是我也希望“命中进入”功能而不会让人感到头疼。


3
“我也希望“击中进入”功能而又不至于让人头疼。” 我认为您决定采用带action =“”的表单后,这艘船已经航行了。为什么不仅仅为onclick事件和keypress事件连接处理程序?
RPM1984'8

Answers:


92

通过使用return false;从“提交”按钮调用的JavaScript代码,可以停止提交表单。

基本上,您需要以下HTML:

<form onsubmit="myFunction(); return false;">
    <input type="submit" value="Submit">
</form>

然后是支持的JavaScript代码:

<script language="javascript"><!--
    function myFunction() {
        // Do stuff
    }
//--></script>

如果您愿意,还可以在某些条件下允许脚本提交表单:

<form onSubmit="return myFunction();">
    <input type="submit" value="Submit">
</form>

搭配:

<script language="JavaScript"><!--
    function myFunction() {
        // Do stuff
        if (condition)
            return true;

        return false;
    }
//--></script>

3
缺少function关键字:function myFunction() { }
约翰·库格曼

12
<form id="my_form" onsubmit="return false;">

足够的 ...


我不认为它特别适用于使用JS提交表单的POST FIELD;你能给我们一个jsfiddle演示吗?
PYK

10

它也可以工作:

<form id='my_form' action="javascript:myFunction(); return false;">

2
尽管这没什么用,但它说的是控制台Uncaught SyntaxError: Illegal return statement
亚历杭德罗·纳瓦

2

怎么样

<form id="my_form" onsubmit="the_ajax_call_function(); return false;">
 ......
</form>



0

作为按钮的onclick事件的一部分,返回false,这将阻止表单提交。

即:

function doFormStuff() {
    // Ajax function body here
    return false;
}

然后只需单击“提交”按钮即可调用该函数。有很多不同的方法。



0

采用:

<form action='javascript:functionWithAjax("search");'>
  <input class="keyword" id="keyword" name="keyword" placeholder="input your keywords" type="search">
  <i class="iconfont icon-icon" onclick="functionWithAjax("search");"></i>
</form>

<script type="text/javascript">
  function functionWithAjax(type) {
    // Ajax action

    return false;
  }
</script>

您应该真正解释一下代码。它将很好的答案变成一个很好的答案。
尼尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.