簡體   English   中英

將onClientClick和onClick與表單提交一起使用

[英]Using onClientClick and onClick together with form submission

所以我遇到了麻煩。 即使嘗試了許多不同的解決方案,我的問題仍然存在。

單擊按鈕將觸發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的情況。 還嘗試了它,並且在onClientClick中也沒有返回true,也沒有“ javascript:”。 從字面上看,我能想到的一切。

任何幫助表示贊賞。 提前致謝。

如果我沒記錯的話,默認情況下,asp控件的UseSubmitBehavior屬性設置為true。 這意味着在該控件上執行的任何事件都將導致回發。 您已將UseSubmitBehavior設置為false,因此由於不發生回發,因此后面的代碼將永遠不會執行。 當一起使用OnClientClick()和OnClick()時,將首先執行客戶端代碼,然后再執行服務器端代碼。 希望這可以幫助

在Onclick內部的方法上使用close()。 ex onClick =“ SomeMethod()”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM