[英]Javascript / Jquery Split Variable Into Two for Stripe Integration
我提前道歉,因為我對PHP相當不錯,但是當談到javascript和jquery時,我真的有點無能為力。 我有以下代碼,我從這里的示例編輯https://gist.github.com/boucher/1750375 ,並希望將信用卡exp月和年字段合並為一個。 問題是將它們分開以與條帶示例代碼一起使用,在代碼中它創建一個令牌。 顯然github上的示例工作得很好,但是當我嘗試編輯時,腳本不會像任何錯誤一樣,但不會像以前那樣提交條帶並檢索令牌。
$(document).ready(function() {
$("#payment-form").submit(function(event) {
// disable the submit button to prevent repeated clicks
$('.submit-button').attr("disabled", "disabled");
var expgroup = document.getElementById('date-exp').val;
var expArray = expgroup.split( '/' );
var expmm = ( expArray[ 0 ] );
var expyy = ( expArray[ 1 ] );
// createToken returns immediately - the supplied callback submits the form if there are no errors
Stripe.createToken({
number: $('.cc').val(),
cvc: $('.card-cvc').val(),
exp_month: expmm,
exp_year: expyy
}, stripeResponseHandler);
return false; // submit from callback
});
});
這不行。
var expgroup = document.getElementById('date-exp').val;
改用它:
var expgroup = $("#date-exp").val()
“cc”也是id而不是類。 你需要使用:
$("#cc").val()
並不是:
$(".cc").val()
document.getElementById('date-exp').val
是jQuery和DOM成語的混合體。 它應該是:
document.getElementById('date-exp').value
要么:
$('#date-exp').val()
還要考慮檢查/
實際上是否在值中(即expArray.length===2
)。
Stripe的jquery.payment庫已經內置了這個功能:
https://github.com/stripe/jquery.payment#paymentcardexpiryvalstring-and-fnpaymentcardexpiryval
這是一些示例代碼。
# form fields on HTML.ERB page
<%= form_tag url do %>
<%= text_field_tag :expiry, nil, name: nil, placeholder: "MM / YYYY", size: 9, id: "stripe-card-expiry" %>
<%= hidden_field_tag :exp_month, nil, name: nil, id: "stripe-card-exp-month", data: { stripe: "exp-month" } %>
<%= hidden_field_tag :exp_year, nil, name: nil, id: "stripe-card-exp-year", data: { stripe: "exp-year" } %>
...other fields and submit...
<% end %>
# Split single expiration field into month/year
expiration = $("#stripe-card-expiry").payment("cardExpiryVal") # => {month: "value", year: "value"}
$("#stripe-card-exp-month").val(expiration.month || 0)
$("#stripe-card-exp-year").val(expiration.year || 0)
# Submit to Stripe.com and get token
Stripe.card.createToken($("#form-id"), handleStripeResponse)
根據您使用的Stripe.js版本,如果使用“data-stripe ...”項,Stripe.js將自動從隱藏字段中獲取值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.