2016-04-02 18 views
1

我正在一個頁面上工作,我想在表單提交時做一些事情;這是形式:如何運行一個函數添加到onsubmit屬性通過jquery attr

<form class="tsf" action="/search" style="overflow:visible" id="tsf" method="GET" name="f" onsubmit="return q.value!=''" role="search"> 

我剛纔寫的代碼之前return q.value!=''

$("#tsf").attr('onsubmit', "do_something(); return q.value!=''"); 

添加新的功能,我定義之後do_something:

function do_something(){ 
    alert("success"); 
} 

但是控制檯返回一個錯誤:

Uncaught ReferenceError: do_something is not defined

如何使用這種方式調用並運行此函數(do_something)?

注:由於種種原因,我只能夠增加我的函數的onsubmit,我只是在尋找一種方式來運行這種方式do_something()

+0

? – gurvinder372

+0

你不能這樣做,像添加點擊事件處理程序? – guradio

+0

@guradio不,因爲它發送的是Ajax請求,我發現的唯一方法是將函數添加到onsubmit中,當表單提交時,運行我想要的 – M98

回答

1

也許你可以先設置它,然後創建一個新的處理程序

function do_something(){ 
    alert("success"); 
} 
function attachNewMethod() 
{ 
    $('#tsf').prop('onclick',null).off('click'); 
    $("#tsf").attr('onsubmit', "do_something(); return q.value!=''"); 
} 

可以共享一個小提琴顯示此錯誤更新fiddle

+0

謝謝,但這並沒有工作!關於事件監聽器呢? – M98

+0

你檢查了小提琴嗎? – gurvinder372

+0

是的;但在我的代碼中沒有工作。您知道該表單是Google表單,輸入是其搜索字段。我正在開發Chrome擴展程序,並且需要將Google搜索字詞發送到服務器 – M98

相關問題