0

巨大な Web アプリケーションでは、フォームを送信するための回避策が必要です。

組み込みの javascript メソッドをオーバーライドするために、この例を試しましたが、アラート ポップアップも表示されません。

上書きされた送信機能に対する私の考えは次のとおりです。

function submit(event) {
        var target = event ? event.target : this;
        $.ajax({
            url: target.action,
            data: $('form').serialize(), // &nd someone knows how I can get the serialize() of the form I just clicked?
            success: function (data) {
                alert('done');
            },
            error: function (data) {
                alert('error (check console log)');
                console.log(data);
            }
        });
        //this._submit();
        return false;
    }

送信がどこでも使用される方法は一貫していません。元のコードの可能性:

<button onclick="form.submit">
onclick="calltoFunction();" // where inside the function the submit is called
<button type="submit" // the normal way

以前にjs関数を上書きしたので、私の考えは可能だと思います。しかし、送信部分でどのようにすればよいですか。提案、アイデア、修正は大歓迎です!

4

4 に答える 4

2

次のようにイベントをボタンにバインドします。

$('#my_button').click(
    function(event){
        event.preventDefault(); //This will prevent the buttons default submit behavior
        ...//The rest is up to you!
}
);
于 2012-10-29T15:22:41.153 に答える
0

これを試すことができます:

function submit(event) {
    var target = event ? event.target : this;
    $.ajax({
        url: target.action,
        type: "POST",
        data: $('form').serialize(), // &nd someone knows how I can get the serialize() of the form I just clicked?
        success: function (data) {
            alert('done');
        },
        error: function (data) {
            alert('error (check console log)');
            console.log(data);
        }
    });
    //this._submit();
    return false;
    }
于 2012-10-29T15:34:53.523 に答える
0
function submit(form) {
    $.ajax({
        url: $(form).attr('action'),
        data: $(form).serialize(),
        success: function (data) {
            alert('done');
        },
        error: function (data) {
            alert('error (check console log)');
            console.log(data);
        }
    });
    return false;
}

<form id="my-form" action="/my-action-file.php" method="post" onsubmit="return submit('#my-form');">
    <!-- my form content -->
</form>
于 2012-10-29T15:24:21.860 に答える
0

これは便利だと思います:

$('#yourForm').beforeSubmit(function()
{
    return doWhateverYouLikeAndReturnTrueToContinueFormSubmition($(this));
});

これにより、他のフォーム送信コードの前にdoWhateverYouLikeAndReturnTrueToContinueFormSubmition が実行されます

于 2012-10-29T15:27:29.487 に答える