3

送信時にどの送信入力がクリックされたかを知るにはどうすればよいですか?

たとえば、送信時に「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

4

1 に答える 1

5

送信ハンドラーではこれを知ることはできません。この情報は渡されません。できることはclick、これら2つのボタンのイベントをサブスクライブし、フォームのグローバル変数またはHTML5data-*属性を更新して、フォーム送信ハンドラー内でわかるようにすることです。

また、ボタンをクリックせずに.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');
    ...
});
于 2012-01-16T17:37:11.897 に答える