2012-01-16 80 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

相关问题