2012-10-28 20 views
0

我使用Stripe payment system接受與jQuery驗證表單所有ajax信用卡。
這適用於條紋和ajax,但驗證不起作用。
這裏的process.phphttps://gist.github.com/1750375與條紋支付阿賈克斯jquery.validate - 結合JS

$(document).ready(function() { 
    var payBtn = $('#paymentBtn').click(function(){ 
      Stripe.createToken({ 
        number: $('.card_number').val(), 
        cvc: $('.card_cvc').val(), 
        exp_month: $('.card_expiry_month').val(), 
        exp_year: $('.card_expiry_year').val() 
      }, 
      function(status, response) { 
       if (response.error) { 
        payBtn.removeAttr("disabled"); 
        $(".payment_errors").html(response.error.message); 
        addInputNames(); 
       } else { 
        var token = response['id']; 
        //$("#stripeToken").val(token); 
        var amount = $("#formAmount").val(); 
        $.post('process.php', {amount:amount, stripeToken:token},function(data){ 
         $('#recDiv').html(data); 
        }); 
       } 
      }); 

      return false; 
    }); 

    // THIS SECTION BELOW DOES NOT GET CALLED 
    jQuery.validator.addMethod("cardNumber", Stripe.validateCardNumber, "*"); 
    jQuery.validator.addMethod("cardCVC", Stripe.validateCVC, "*"); 
    jQuery.validator.addMethod("cardExpiry", function() { 
      return Stripe.validateExpiry($(".card_expiry_month").val(), 
                    $(".card_expiry_year").val()) 
    }, "*"); 

    $("#payment_form").validate({ 
      submitHandler: submit,// this does nothing 
      rules: { 
        "card_cvc" : { 
          cardCVC: true, 
          required: true 
        }, 
        "card_number" : { 
          cardNumber: true, 
          required: true 
        }, 
        "card_expiry_year" : "cardExpiry" 
      } 
    }); 
}); 

因爲現在我已經把.post功能,從第一個例子裏缺了以前的所有變量,這個submitHandler這適用於驗證但隨後條紋不工作。

$("#payment_form").validate({ 
     submitHandler: function(form) { 
     $.ajax({ 
      type: 'POST', 
      url: 'process.php', 
      data: $(this).serialize(), 
      success: function(returnedData) { 
       $('#recDiv').append(returnedData);//nothing happens because stripe doesnt work 
      } 
     });   
     return false; 
    }, 
     rules: { 
       "card_cvc" : { 
         cardCVC: true, 
         required: true 
       }, 
       "card_number" : { 
         cardNumber: true, 
         required: true 
       }, 
       "card_expiry_year" : "cardExpiry" 
     } 
}); 

問題:我怎樣才能得到驗證,從上面的第一個樣品工作?

+0

當你說「不工作」,你會得到錯誤信息?這一切似乎都過去了,但沒有任何反應?請澄清該聲明。 – Peter

+0

@Peter剛剛修訂 –

+0

後的HTML代碼或的jsfiddle –

回答

0

我看你也將這一https://gist.github.com/9ce1a97c0453581044bb - 如果你正在使用移動/ PhoneGap的,您就可以在如何連接到後端服務器的一些示例代碼?

+0

連接到後端的AJAX版本:從第一個例子中有'$。員額(' process.php」,{量:量,stripeToken:令牌} {$ ,功能(數據)。( '#recDiv')的html(數據); });'具有從https PHP://gist.github .com/1750375 –

+0

但我該如何定位'$('#paymentBtn')。click'在這一行'submitHandler:' –