0

というわけで困ってます。多くの異なる解決策を試した後でも、私の問題は解決しません。

ボタンをクリックすると、Java スクリプト コードが起動されますが、サーバー側のコードは起動されません。

<asp:Button ID="btnSubmit" runat="server" CssClass="ins_sub_btn_form_map" OnClientClick="javascript: stripeSubmit(); return true;" onClick="btnSubmit_Click" 
                                        UseSubmitBehavior="false" ValidationGroup="Submit" Text="Submit" />

ここに私のjavascriptがあります:

function stripeResponseHandler(status, response) {
            if (response.error) {
                // show the errors on the form
                $(".payment-errors").html(response.error.message);
            } else {
                var form$ = $("#form1");
                // token contains id, last4, and card type
                var token = response['id'];
                // insert the token into the form so it gets submitted to the server
                form$.append("<input type='visible' id='stripeToken' name='stripeToken' value='" + token + "' />");
                // and submit
                form$.get(0).submit();                    
            }
        }

        function stripeSubmit() {
            Stripe.setPublishableKey($("input#txtStripePK").val());
            var expDate = $("input#txtExpirationDate").val();
            if (Stripe.card.validateCardNumber($("input#txtCreditCardNumber").val()) == false)
            {
                alert("Credit Card Number Error");
                return;
            }
            if (Stripe.card.validateCVC($("input#txtCVVNumber").val()) == false) {
                alert("CVN Number Error");
                return;
            }
            if (Stripe.card.validateExpiry((expDate.slice(0, 2)) , ("20" + expDate.slice(2, 4))) == false) {
                alert("Expiration Date Error");
                return;
            }
                // createToken returns immediately - the supplied callback submits the form if there are no errors
                Stripe.card.createToken({
                    number: $("input#txtCreditCardNumber").val(),
                    cvc: $("input#txtCVVNumber").val(),
                    exp_month: (expDate.slice(0, 2)),
                    exp_year: ("20" + expDate.slice(2, 4))
                }, stripeResponseHandler);
                //return true; // submit from callback
            }

javascriptでtrueを返すことなく、javascriptで試してみました。また、「javascript:」なしで、onClientClick で true を返さずに試してみました。文字通り私が考えることができるすべて。

どんな助けでも大歓迎です。前もって感謝します。

4

2 に答える 2

0

私の間違いでなければ、既定では、asp コントロールの UseSubmitBehavior プロパティは true に設定されています。これは、そのコントロールで実行されたイベントによってポストバックが発生することを意味します。UseSubmitBehavior を false に設定しているため、ポストバックが発生しないため、コード ビハインドは実行されません。OnClientClick() と OnClick() を一緒に使用すると、クライアント側のコードが最初に実行され、次にサーバー側のコードが実行されます。お役に立てれば

于 2013-12-10T15:10:13.780 に答える