2012-01-17 38 views
0

我有這樣的代碼:防止形式從提交到不同的頁面

<form method="get" action="" id="search"> 
<input id="search_box" name="search" type="text" class='search_box' onkeypress="if(event.keyCode==13) sentAjax('searchdata.php');var filelink='searchdata.php';" value="" onclick="this.value=''" /> 
     <input type="hidden" name="course_val" id="course_val" /> 
</form> 

我想從提交到不同的page.Now塊的形式,如果你命中進入它提交到不同的頁面

回答

2

<form method="get" action="" id="search" onsubmit="return false;"> 
... 
</form> 

請注意,不會讓你提交形式如此理想,您可以調用您的提交處理函數,您可以在其中控制何時提交

<form method="get" action="" id="search" onsubmit="return mySubmitHandler()"> 
... 
</form> 

,並在您提交處理

 function mySubmitHandler(){ 
     if (submit_criteria_met) { 
     return true; 
     } else { 
     return false; 
     } 
return false; 

    } 
+0

完美工作。謝謝 – cppit

+0

np。只是糾正了提交處理程序僞代碼。 onsubmit應該有「return mySubmitHandler()」。 – Michal

0
$('#search').bind('submit',function(e) { 
    e.preventDefault(); 
}); 
+1

這將做一大堆的什麼:) – alex

+0

@alex是正確的;你錯過了一些括號。 :-) – PPvG

+0

那麼在你的表單中,如果你正在使用get方法,你爲什麼不擺脫表單並將其作爲URL發佈?無論如何它不會從中受益。 – Abhi

1

這應該做的伎倆:

$('form#search').on('submit', function(e) { 
    e.preventDefault(); 
}); 

的重要組成部分,爲e.preventDefault(),防止形式在觸發事件時觸發submit提交。

+0

它仍然提交 – cppit

+0

這不會阻止onkeypress處理程序在按Enter鍵時執行(鍵碼13)。看到我的回答 – David

0

防止表單的默認操作。

$('#search').submit(function(event) { event.preventDefault(); }); 
+0

它仍然提交 – cppit

1

刪除輸入字段的onkeypress屬性,它看起來像它按輸入(鍵碼13)時做幕後的一些帖子。

您可能還想阻止表單提交,儘管它似乎因爲action屬性爲空而提交到同一頁面。

如果您不能編輯HTML,你可以試試:

$('#search').submit(function(e) { 
    e.preventDefault(); 
}).find('input[onkeypress]').removeAttr('onkeypress'); 

測試:http://jsfiddle.net/DAvfm/在純JavaScript