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

发布于 2024-12-27 16:04:39 字数 675 浏览 1 评论 0原文

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

例如,我想知道提交时是否点击了'update'提交输入或'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

How can I know which submit input is clicked on submit?

For instance, I want to know whether 'update' submit input or 'update_close' submit input is clicked on submit.

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灼痛 2025-01-03 16:04:40

您无法在提交处理程序中知道这一点。此信息未传递。您可以做的是订阅这两个按钮的 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');
    ...
});

You can't know this in the submit handler. This information is not passed. What you could do is to subscribe to the click events of those 2 buttons and update some global variable or a HTML5 data-* attribute on the form so that inside your form submit handler you will know.

Also if you invoke the .submit event programatically, without clicking on any button, this information simply doesn't make sense.


UPDATE:

Example using HTML5 data-* attributes:

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

and inside your submit handler:

$('#form_data').submit(function(e) {
    var submitButton = $(this).data('submitbutton');
    ...
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文