问题
I am trying to get token from stripe account. its working fine if there is only one form but not on multiple. I want to get the token for the form which is submited by user for that purpose i am sending ajax request to stripe by giving seperate id to every form. but its showing Type error b is not defined. I want to know weather there is syntax error or not. if not than why its not working.
<form id="stripe_form-1" role="form" method="post" action="#">
<div id="#payment-errors-1"></div>
<input type="text" name="cc_number" value="">
<input type="text" name="cvv" value="">
<input type="text" name="ex_month" value="">
<input type="text" name="ex_year" value="">
<button id="sbtn-1 type=""button" onclick="StripeFunction1()" </button>
</form>
<form id="stripe_form-2" role="form" method="post" action="#">
<div id="#payment-errors-2"></div>
<input type="text" name="cc_number" value="">
<input type="text" name="cvv" value="">
<input type="text" name="ex_month" value="">
<input type="text" name="ex_year" value="">
<button id="sbtn-2" type=""button" onclick="StripeFunction2()" </button>
</form>
<form id="stripe_form-3" role="form" method="post" action="#">
<div id="#payment-errors-3"></div>
<input type="text" name="cc_number" value="">
<input type="text" name="cvv" value="">
<input type="text" name="ex_month" value="">
<input type="text" name="ex_year" value="">
<button id="sbtn-3" type=""button" onclick="StripeFunction2()" </button>
</form>
In java script
function StripeFunction1() {
var form = $('#stripe_form-1');
form.find('#sbtn-1').prop('disabled', true);
Stripe.createToken(form, stripeResponseHandler_1);
}
var stripeResponseHandler_1 = function(status, response) {
var form = $('#stripe_form-1');
if (response.error) {
form.find('#payment-errors-1').text(response.error.message);
form.find('#sbtn-1').prop('disabled', false);
} else {
$('<input>', {
'type': 'hidden',
'name': 'stripeToken',
'value': response.id
}).appendTo(form);
form.get(0).submit();
}
};
function StripeFunction2() {
var form = $('#stripe_form-2');
form.find('#sbtn-2').prop('disabled', true);
Stripe.createToken(form, stripeResponseHandler_2);
}
var stripeResponseHandler_2 = function(status, response) {
var form = $('#stripe_form-2');
if (response.error) {
form.find('#payment-errors-2').text(response.error.message);
form.find('#sbtn-2').prop('disabled', false);
} else {
$('<input>', {
'type': 'hidden',
'name': 'stripeToken',
'value': response.id
}).appendTo(form);
form.get(0).submit();
}
};
function StripeFunction3() {
var form = $('#stripe_form-3');
form.find('#sbtn-3').prop('disabled', true);
Stripe.createToken(form, stripeResponseHandler_3);
}
var stripeResponseHandler_3 = function(status, response) {
var form = $('#stripe_form-3');
if (response.error) {
form.find('#payment-errors-3').text(response.error.message);
form.find('#sbtn-3').prop('disabled', false);
} else {
$('<input>', {
'type': 'hidden',
'name': 'stripeToken',
'value': response.id
}).appendTo(form);
form.get(0).submit();
}
};
When submit form its give typeerror b is not defined. Is there any mistake in syntax or is there any other method?
来源:https://stackoverflow.com/questions/38826091/multiple-stripe-payment-forms-on-single-page