2011-10-31 136 views
1

我有兩個表單提交按鈕:處理兩個提交按鈕與evently

<form> 
    ... 
    <input type="submit" name="update" value="Update"></input> 
    <input type="submit" name="clean" value="Clean"></input> 
</form> 

根據我點擊,我必須做兩個不同的東西哪個按鈕。 update會將一些表單數據添加到內部結構中,並且clean將清除表單和內部結構。

我遇到的問題是我無法用Evently/jQuery捕獲這兩個不同的事件。我可以處理表單/提交事件,但是我沒有得到關於哪個按鈕被按下的信息(根據jQuery文檔「沒有提交按鈕值被序列化,因爲表單沒有使用按鈕提交」)。

或者我已經嘗試捕獲更新/單擊和清理/點擊事件,但是我沒有成功構建我的Evently目錄樹來捕獲該事件。這是我目前的結構,以試圖抓住這些事件:

evently/filterconf/_init/ 
evently/filterconf/_init/selectors/form 
evently/filterconf/_init/selectors/form/clean 
evently/filterconf/_init/selectors/form/clean/click.js 
evently/filterconf/_init/selectors/form/update 
evently/filterconf/_init/selectors/form/update/click.js 
evently/filterconf/_init/mustache.html 

但這些click.js沒有被觸發。有關如何解決這個問題的任何想法?還是你有一個完全不同的方法來處理Evently中的這兩個提交按鈕的建議?

回答

0

那麼,因爲它只會執行ajax調用,而實際上並沒有用POST提交整個表單,所以您甚至不需要那些按鈕來提交按鈕。只要做到:

<button id="btn_update" value="Update"></button> 
    <button id="btn_clean" value="Clean"></button> 

和結構的evently文件夾爲:

evently/filterconf/_init 
evently/filterconf/_init/selectors 
evently/filterconf/_init/selectors/#btn_clean/ 
evently/filterconf/_init/selectors/#btn_clean/click.js 
evently/filterconf/_init/selectors/#btn_update 
evently/filterconf/_init/selectors/#btn_update/click.js 

或者,你們的做法,將是這樣的:

evently/filterconf/_init /選擇/表格/提交.js

所以你會附上提交事件,而不是點擊事件。

提交處理程序應該是這樣的:

function() { 
     var form = $(this); 
     var doc = form.serializeObject(); 
     // ... 
    } 
+0

當我在提交處理程序做serializeObject沒有有關哪些按鈕被按下。 – dangonfast

+0

另一個aproach(#btn_clean,#btn_update)正在工作。我必須使用'$(this).parent(「form」)'來訪問表單 – dangonfast