3

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

例如,我想知道是否在提交时单击了“更新”提交输入或“更新关闭”提交输入。

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

4

1 回答 1

5

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

此外,如果您以编程方式调用 .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');
    ...
});
于 2012-01-16T17:37:11.897 回答