2015-10-31 51 views
2

我創建了我的信用卡付款形式的引導模式我想驗證信用卡形式現在我正在使用jquery中的基本驗證。信用卡表單提交引導模式

<script> 
$(function() { 
$('#error_message_reg').text(""); 
//$("submitBtnRegister").click(function() { 
$('#register_form').on('submit', function() { 
//e.preventDefault(); 
var error=false; 
var firstName = $('#payment_first_name').val(); 
var lastName = $('#payment_last_name').val(); 
var adress = $('#payment_address').val(); 
var city = $('#payment_city').val(); 
var state = $('#payment_state').val(); 
var zip = $('#payment_zip').val(); 
var country = $('#payment_country').val(); 
var cc_no = $('#payment_card_no').val(); 
var cc_month = $('#payment_card_expiry_month').val(); 
var cc_year = $('#payment_card_expiry_year').val(); 
var cc_ccv = $('#payment_card_ccv').val(); 
var postal_code = $('#payment_card_postal_code').val(); 






if(firstName == null || firstName == "") { 
      $('#error_message_reg').text("FIrst name is required"); 
      var error=true; 
      return false; 
     } 



if(lastName == null || lastName == "") { 
      $('#error_message_reg').text("Last name is required."); 
      var error=true; 
      return false; 
     } 
if(adress == null || adress == "") { 
      $('#error_message_reg').text("Adress is required."); 
      var error=true; 
      return false; 
     } 
if(city == null || city == "") { 
      $('#error_message_reg').text("City is required."); 
      var error=true; 
      return false; 
     } 
if(state == null || state == "") { 
      $('#error_message_reg').text("state is required."); 
      var error=true; 
      return false; 
     } 
if(zip == null || zip == "") { 
      $('#error_message_reg').text("Zip is required."); 
      var error=true; 
      return false; 
     } 
if(country == null || country == "") { 
      $('#error_message_reg').text("country is required."); 
      var error=true; 
      return false; 
     } 
if(cc_no == null || cc_no == "") { 
      $('#error_message_reg').text("Card number is required."); 
      var error=true; 
      return false; 
     } 
if(cc_month == null || cc_month == "") { 
      $('#error_message_reg').text("expiry month is required."); 
      var error=true; 
      return false; 
     } 
if(cc_year == null || cc_year == "") { 
      $('#error_message_reg').text("expiry year is required."); 
      var error=true; 
      return false; 
     } 
if(cc_ccv == null || cc_ccv == "") { 
      $('#error_message_reg').text("CVV is required."); 
      var error=true; 
      return false; 
     } 
if(postal_code == null || postal_code == "") { 
      $('#error_message_reg').text("postal code is required."); 
      var error=true; 
      return false; 
     } 
if(error==false) 
{ 
     $('#error_message_reg').text(""); 
     $('#register_form').submit(); 

} 
}); 
}); 
</script> 

我想添加信用卡驗證也喜歡這張卡是有效的。 我使用braintree作爲我的支付網關,我可以使用$result->errors->deepAll()
但是當我提交表單時,模態正在關閉。有什麼方法可以防止關閉模態,直到braintree的響應來臨。 有沒有可能做到這一點,而不使用ajax。

預先感謝

+0

您是否符合pci標準? –

+1

我只是一個入門級程序員什麼是_pci compliant_? – ashith

+0

檢查此https://articles.braintreepayments.com/reference/security/pci-compliance –

回答

2

有沒有辦法做到不刷新頁面的服務器端驗證(如你已經告訴過不使用AJAX),當頁面刷新模式將被關閉。

或者,我們需要重新打開頁面提交模式,通過驗證卡片在URL中傳遞一些參數。

<?php if(invalid card): ?> 
<script> 
reopen the modal with parameters posted 
</script> 
<?php endif; ?> 

我建議使用AJAX將是最好的方法。在代碼的底部,您可以添加

if(error==false) 
{ 

$.post("url to do server side validation", $("#register_form").serialize()) 
    .done(function(data) { //Better to have JSON as response 
if(data.success === true) 
{ 
    $('#error_message_reg').text(""); 
     $('#register_form').submit(); 
} 
else 
{ 
    $('#error_message_reg').text("error from response"); 
    return false; 
} 
    }); 

}