2011-08-10 35 views
3

鑑於這種HTML創建表單添加的onsubmit:如何刪除現有的和形式使用jquery

<form name="search" id="myForm" onsubmit="return existingfunc()" method="post"> 
    <input type="submit" value="Search" title="Search"> 
</form> 

我可以用$('#myForm').attr('name','newname')通過jQuery改變形式的名稱。

是否可以更改窗體的onsubmit函數?

$('#myForm').unbind('submit'); 

將從#myForm刪除所有onsubmit事件:

+0

當然,但這不是一個好辦法。考慮附加一個eventlistener來提交表格 – Fender

+0

「被叫」的形式如何?你的意思是什麼時候提交?或者當它被點擊時?或者當頁面加載? – Matt

+0

我會改變表單名稱,當按鈕被點擊時,其實默認情況下它會用於搜索(所以我給名稱作爲搜索),如果我點擊了按鈕,我想讓表單添加項目到我的頁面,這樣我可以將名稱更改爲「添加」並更改「操作」,也可以刪除onsubmit功能並添加新的提交功能 – mymotherland

回答

3

您可以使用jQuery的unbind功能,例如,刪除現有的事件。然後你就可以使用正常的jQuery添加一個新的事件:

$('#myForm').submit(function(e) { /* your logic here */ }); 
+0

我相信unbind()只會刪除由jQuery附加的事件處理程序 –

10

只需更改你能做到這一點的形式onsubmit事件:

$('#myForm').attr('onsubmit', 'return somethingElse()'); 

但你可能要刪除形式的onsubmit屬性,那麼使用jQuery添加新事件(注:unbind()將刪除的jQuery只附着事件處理程序):

$('#myForm').removeAttr('onsubmit').submit(function(e) { /* your logic here */ });