2

sendPostAjax()フォーム send_button がクリックされた後、関数を使用して確認投稿を送信し、フォームを支払いプロバイダーに送信しようとしました。しかしsendPostAjax()、クリックが行われる前に、ページの読み込み時に関数が実行されます。

sendPostAjax()関数をクリックキャッチ内に配置しようとしましたが、 sendPostAjax() 関数が未定義であるため、プロミスを割り当てることができません。

これを解決する方法はありますか?

HTMLフォーム

<form id="payment" method="post" action="https://my-payment-provider.com">
    <input type="hidden" name="charset" value="utf-8">
    // --- additional data here
    <button type="submit" name="submit" id="send_button">PAY</button>
</form>

JavaScript コード

<script type = "text/javascript">
    // Get click and call sendPostAjax function
    document.getElementById('send_button').addEventListener('click', function () {
        sendPostAjax();
        return false;
    });

    function sendPostAjax() {
        return $.ajax({
            url: 'confirm.php',
            type: 'POST',
            data: {
                cid: '9999999'
            }
        });
    }

    // function that expects a promise as an argument:
    function sendForm(x) {
        x.success(function () {
            $('#payment').submit;
        });
    }

    // get a promise from sendPostAjax:
    var promise = sendPostAjax();

    // give a promise to other function:
    sendForm(promise); 
</script>
4

2 に答える 2