2010-08-02 52 views
45

我希望html表單在提交後不做任何事情。想要html表單提交什麼也不做

action="" 

是沒有好,因爲它會導致頁面重新加載。

基本上我想要一個ajax函數,只要按下按鈕或有人在輸入數據後點擊「enter」就會被調用。是的,我可以刪除表單標籤,並添加只是從按鈕的onclick事件調用函數,但我也希望「擊中回車」功能,而不是所有的hackish。

+2

「我也希望 「按下回車鍵」功能沒有得到所有hackish「。我認爲那艘船已經航行了,因爲你已經決定擁有一個表格,並帶有action =「」。爲什麼不直接連接onclick事件處理程序和按鍵事件? – RPM1984 2010-08-02 04:22:53

回答

63

通過在您從提交按鈕調用的javascript中使用return false;,可以停止提交表單。

基本上,你需要下面的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(){}' – 2010-08-02 04:40:06

0

作爲按鈕的onclick事件的一部分,返回false將停止表單提交。

即:

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

而且只需撥打提交按鈕點擊該功能。有很多不同的方法。

2

如何

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

使用jQuery。也許把一個div放在你表單的元素周圍。然後使用preventDefault()方法,然後讓你的Ajax調用

2

您可以使用下面的HTML

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

它也適用:

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

儘管這並沒有做任何事情,但它表示控制檯表示「Uncaught SyntaxError:Illegal return statement'。 – alej27 2016-12-30 00:18:21

-1
<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> 
+0

你應該真的解釋一下代碼。它會把一個很好的答案變成一個很好的答案。 – Neil 2017-04-09 02:26:32