【发布时间】:2018-10-02 02:17:48
【问题描述】:
我正在尝试集成信用卡表单,我将使用填写在输入中的凭据通过 post 方法发送到 paypal api 并获得回复。
我正在尝试编写客户端验证,但面临的问题是为过期日期编写验证,其中我需要月/年 (00/0000) 的格式,月应该是 2 位数,年份应该是 4 位数。现在我的表格接受任何长度的数字,如果它们是用“/”写的,例如:23456/12456,并且只有当它完全符合字符时才会给出错误。所以,我有点困惑如何编写这样的验证!!
到目前为止,我正在使用正则表达式来验证全字符输入字段的简单全整数。不知道像上面这样复杂的表单验证。
那么,我如何使用 ajax 或 jquery 验证来强制用户以所需的格式写入?
html
<form action="/payment" method="post">
{% csrf_token %}
<div class="col-md-4 col-sm-6 col-xs-6 input_mb">
<label>Name on Card</label>
<input id="id_card_name" class="form-control" name="fields[]" type="text" placeholder="Full name as display on card">
</div>
<div class="col-md-4 col-sm-6 col-xs-6 input_mb">
<label>Credit Card Number</label>
<input id="id_card_number" class="form-control" name="fields[]" type="text" placeholder="Enter Card Number">
</div>
<div class="col-md-4 col-sm-6 col-xs-6 input_mb">
<label>Expiry</label>
<input id="id_card_expiry" class="form-control" name="fields[]" type="text" placeholder="Ex: 06/2023">
</div>
<div class="col-md-4 col-sm-6 col-xs-6 input_mb">
<label>Security Code</label>
<input id="id_security_code" class="form-control" name="fields[]" type="text" placeholder="Ex: XXX8">
</div>
<div class="col-md-4 col-sm-m col-xs-6 input_mb">
<button class="btn" type="button">PAY $139</button>
</div>
</form>
我用来将数据发布到 API 的 ajax 调用
<script>
$(document).ready(function(){
$('.btn').click(function(){
alert('clicked')
$.ajax({
method:'POST',
url:'/payment',
data:{
'name':$('#id_card_name').val(),
'number':$('#id_card_number').val(),
'card-month-year':$('#id_card_expiry').val(),
'security-code':$('#id_security_code').val(),
csrfmiddlewaretoken:'{{ csrf_token }}'
},
success:function(response){
alert(response);
var resss = $.parseJSON(response);
console.log(resss.card.status);
if (resss.card.status == "succeeded"){
window.location = res.redirect_url;
}
}
})
})
})
</script>
【问题讨论】:
标签: javascript jquery ajax django