如何知道点击提交的提交输入?

时间:2012-01-16 17:35:26

标签: jquery submit onsubmit

如何知道在提交时点击了哪个提交输入?

例如,我想知道'更新'提交输入或'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

1 个答案:

答案 0 :(得分:5)

您无法在提交处理程序中知道这一点。此信息未通过。您可以做的是订阅这两个按钮的click事件,并更新表单上的一些全局变量或HTML5 data-*属性,以便您在表单提交处理程序中知道。

此外,如果您以编程方式调用.submit事件,而不点击任何按钮,则此信息根本没有意义。


更新:

使用HTML5 data- *属性的示例:

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

并在提交处理程序中:

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