我使用Stripe payment system接受與jQuery驗證表單所有ajax
信用卡。
這適用於條紋和ajax,但驗證不起作用。
這裏的process.php
https://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"
}
});
問題:我怎樣才能得到驗證,從上面的第一個樣品工作?
當你說「不工作」,你會得到錯誤信息?這一切似乎都過去了,但沒有任何反應?請澄清該聲明。 – Peter
@Peter剛剛修訂 –
後的HTML代碼或的jsfiddle –