Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建条带令牌后提交表单_Javascript_Php_Jquery_Forms_Stripe Payments - Fatal编程技术网

Javascript 创建条带令牌后提交表单

Javascript 创建条带令牌后提交表单,javascript,php,jquery,forms,stripe-payments,Javascript,Php,Jquery,Forms,Stripe Payments,无法使用带stripe.js插件的jquery提交表单。我想在创建条带令牌后提交表单。Jquery验证工作正常。它在控制台中显示错误消息“对象不是函数”,我可以创建令牌 <?php if(count($_REQUEST)>4) { print_r($_REQUEST); exit; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict

无法使用带stripe.js插件的jquery提交表单。我想在创建条带令牌后提交表单。Jquery验证工作正常。它在控制台中显示错误消息“对象不是函数”,我可以创建令牌

    <?php
    if(count($_REQUEST)>4)
    {
        print_r($_REQUEST);
        exit;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

    <head>
        <title>untitled</title>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <meta name="generator" content="Geany 0.21" />
    </head>

    <body>
        <script type="text/javascript" src="https://js.stripe.com/v2/"></script>
            <script src="http://jqueryvalidation.org/files/lib/jquery.js"></script>
        <script src="http://jqueryvalidation.org/files/dist/jquery.validate.js"></script>

    <!-- ///////////////////////////////////////////////////////////////////////////////// -->
       <!-- CONTACT FORM -->
       <div class="col-lg-6">
       <h1>CONTACT</h1>

             <h3 class="service_h3">Say Hello! Ask something?</h3>               

    <form class="cmxform" id="signupForm" method="post" action="">
            <fieldset>
                <legend>Validating a complete form</legend>
                <p>
                    <label for="firstname">Firstname</label>
                    <input id="firstname" name="firstname" type="text">
                </p>
                <p>
                    <label for="lastname">Lastname</label>
                    <input id="lastname" name="lastname" type="text">
                </p>
                <p>
                    <label for="username">Username</label>
                    <input id="username" name="username" type="text">
                </p>


             <fieldset>
              <div class="cardform">
              <span class="payment-errors"></span>
              <div class="field">
                 <label>Card Number</label>
                 <input type="text" size="20" autocomplete="off" class="input card-number" value="4242424242424242">
              </div>              
              <div class="field small">
                  <label>CVC</label>
                  <input type="text" size="4" autocomplete="off" class="input card-cvc" value="424">
              </div>
              <div class="field medium">
                  <label>Expiration (MM/YYYY)</label>
                  <input type="text" class="input card-expiry-month" size="2" placeholder="MM" value="05">

                  <input type="text" class="input card-expiry-year" size="4" placeholder="YYYY" value="2018">
              </div>
              </div>
                </fieldset>

                <p>
                    <input class="btn" type="submit" name="submit" id="submit" value="Submit"/>
                </p>
            </fieldset>
        </form>
             </div>
    </body>

    </html>
    <script>


        Stripe.setPublishableKey("pk_test_q8JKhn0ydXmENnxCnJxxV7xC");

        function stripeResponseHandler(status, response) {
          var $form = $('#signupForm');

          if (response.error) {
            // Show the errors on the form
            $form.find('.payment-errors').text(response.error.message);
            $form.find('#submit').prop('disabled', false);
          } else {
            // response contains id and card, which contains additional card details
            var token = response.id;
            // Insert the token into the form so it gets submitted to the server
            $form.append($('<input type="hidden" name="stripeToken" />').val(token));
            // and submit
            $form.get(0).submit();
          }
        };

        $().ready(function() {
        $("#signupForm").validate({
                rules: {
                    firstname: "required",
                    lastname: "required",
                    username: {
                        required: true,
                        minlength: 2
                    }
                },
                messages: {
                    firstname: "Please enter your firstname",
                    lastname: "Please enter your lastname",
                    username: {
                        required: "Please enter a username",
                        minlength: "Your username must consist of at least 2 characters"
                    }
            },  
            submitHandler: function(form) {

                    Stripe.createToken({
                        number: $('.card-number').val(),
                        cvc: $('.card-cvc').val(),
                        exp_month: $('.card-expiry-month').val(),
                        exp_year: $('.card-expiry-year').val()
                    }, stripeResponseHandler);
                    return false; // submit from callback
                }

            });

        });
        </script>

无标题
接触
打声招呼!问点什么?
验证完整表单

名字

姓氏

用户名

卡号 CVC 有效期(年月日)

Stripe.setPublishableKey(“pk_测试_Q8JKHN0YDxMenxNJXXV7xC”); 函数stripeResponseHandler(状态、响应){ var$form=$(“#signupForm”); if(response.error){ //在表单上显示错误 $form.find('.payment errors').text(response.error.message); $form.find(“#submit”).prop('disabled',false); }否则{ //响应包含id和卡,其中包含其他卡详细信息 var token=response.id; //将令牌插入表单,以便将其提交到服务器 $form.append($('').val(标记)); //并提交 $form.get(0.submit(); } }; $().ready(函数()){ $(“#注册表”).validate({ 规则:{ 名字:“必选”, 姓氏:“必需”, 用户名:{ 要求:正确, 最小长度:2 } }, 信息:{ 名字:“请输入您的名字”, 姓氏:“请输入您的姓氏”, 用户名:{ 必需:“请输入用户名”, minlength:“您的用户名必须至少包含2个字符” } }, submitHandler:函数(表单){ Stripe.createToken({ 编号:$('.card number').val(), cvc:$('.card cvc').val(), exp_month:$('.card expiration month').val(), exp_year:$('.card expiration year').val() },stripeResponseHandler); 返回false;//从回调提交 } }); });
@matthew arkin帮助我解决了这个问题。只需从submit按钮中删除name和id属性。它与默认的.submit()操作冲突

使用:


而不是:

<input class="btn" type="submit" name="submit" id="submit" value="Submit"/>

<input class="btn" type="submit" name="submit" id="submit" value="Submit"/>