2012-01-16 81 views
3

如何知道在提交時點擊了哪個提交輸入?如何知道提交時點擊哪個提交輸入?

舉例來說,我想知道「更新」是否提交輸入或「update_close」提交輸入點擊提交。

HTML,

<form id="form_data"> 
    <input type="input" name="title" value="" /> 
    <input type="submit" name="update" value="Update" /> 
    <input type="submit" name="update_close" value="Update and Close"/> 
</form> 

jQuery的,

$(document).ready(function(){ 

     $('#form_data').submit(function(e){ 

      alert($(this).serialize()); 
      return false; 
     }); 

    }); 

jsfiddle

回答

5

你不能在提交處理程序中知道這一點。此信息未被傳遞。你可以做的是訂閱這兩個按鈕的click事件,並更新表單上的一些全局變量或HTML5 data-*屬性,以便在表單提交處理程序內部知道。

此外,如果您以編程方式調用.submit事件,而無需單擊任何按鈕,則此信息根本沒有意義。


更新:使用HTML5數據 - *屬性

例子:

$('#form_data :submit').click(function() { 
    $(this).closest('form').data('submitbutton', $(this).attr('name')); 
}); 

和您提交處理程序中:

$('#form_data').submit(function(e) { 
    var submitButton = $(this).data('submitbutton'); 
    ... 
}); 
+0

感謝。我怎樣才能做到這一點與HTML5數據*屬性?謝謝。 – laukok 2012-01-16 17:38:40

+0

那麼服務器如何知道哪個按鈕被點擊? (它確實...提交按鈕ID正在通過) – gdoron 2012-01-16 17:39:02

+0

@lauthiamkok,我已經更新了我的答案以提供示例。 – 2012-01-16 17:40:52

相關問題