【发布时间】:2015-12-24 23:47:40
【问题描述】:
我希望能够采用此表单 - 获取带有条带结帐的条带 ID(代码已实现且正常工作),然后通过 ajax 提交表单并将条带 ID 插入表单中的隐藏值中。
什么 jQuery 代码可以让我这样做?
class signupForm(Form):
forename = StringField('Forename', validators = [ Required()])
surname = StringField('Surname', validators = [Required()])
username = StringField('Username', validators = [Required(), Length(min = 4, max = 20)])
password1 = PasswordField('Password', validators = [Required(), Length(min = 6, max=50)])
password2 = PasswordField('Password', validators = [Required(), Length(min = 6, max=50)])
email = StringField('Email', validators = [Email(), Required()])
phone = StringField('Phone number', validators = [Required()])
addressLine1 = StringField('Address Line 1', validators = [Required()])
addressLine2 = StringField('Address Line 2')
town = StringField('Town', validators = [Required()])
county = StringField('County', validators = [Required()])
postcode = StringField('Postcode', validators = [Required()])
recurringDonationQuantity = StringField('If you would like to make a monthly recurring donation, please enter the amount in Sterling below. <br> Recurring Donation Amount')
stripetoken = HiddenField('')
我的页面:
{% with messages = get_flashed_messages() %}
{% if messages %}
<div class="alert alert-warning" role="alert">
<ul>
{% for message in messages %}
<li>{{ message | safe }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endwith %}
{{ wtf.quick_form(form) }}
我也有这个 javascrpt in-page
<script>
var handler = StripeCheckout.configure({
key: '{{key}}',
image: '{{ url_for("static", filename="logo.png") }}',
locale: 'english',
token: function(token,args) {
$('#stripe-token').val = token;
wt
console.log(token)
}
});
$('#pay').on('click', function(e) {
// Open Checkout with further options
if ('{{type}}' == 'normal') {
description = 'Normal Membership';
amount = 2500;
console.log('membership type is NORMAL')
} else {
description = 'Associate Membership';
amount = 2500;
console.log('membership type is ASSOCIATE')
}
handler.open({
name: 'My Organisation',
description: description,
amount: amount,
currency: 'GBP',
panelLabel: 'Okay',
billingAddress: true,
zipCode: true
});
e.preventDefault();
});
// Close Checkout on page navigation
$(window).on('popstate', function() {
handler.close();
});
</script>
【问题讨论】:
-
amount = 2500;请告诉我您不相信客户会告诉您收取多少费用! -
不 - 金额由定义注册类型的 url 参数定义 - 由后端逻辑定义的金额。这只是向用户显示他们将被收取多少费用(假设他们不是故意破坏东西) - 无论哪种方式,他们仍将根据注册类型收取费用。
-
唷 ;) 这真是一种解脱!
标签: jquery python ajax flask flask-wtforms