validate.tpl 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. {if !$hasRemoteInput}
  2. <script>
  3. var stateNotRequired = true,
  4. ccForm = '';
  5. function validateCreditCardInput(e) {
  6. var newOrExisting = jQuery('input[name="ccinfo"]:checked').val(),
  7. submitButton = jQuery('#btnSubmit'),
  8. cardType = null,
  9. submit = true,
  10. cardNumber = jQuery('#inputCardNumber');
  11. ccForm.find('.form-group').removeClass('has-error');
  12. ccForm.find('.field-error-msg').hide();
  13. if (newOrExisting === 'new') {
  14. cardType = jQuery.payment.cardType(ccForm.find('#inputCardNumber').val());
  15. if (
  16. !jQuery.payment.validateCardNumber(ccForm.find('#inputCardNumber').val())
  17. || cardNumber.hasClass('unsupported')
  18. ) {
  19. var error = cardNumber.data('message-invalid');
  20. if (cardNumber.hasClass('unsupported')) {
  21. error = cardNumber.data('message-unsupported');
  22. }
  23. ccForm.find('#inputCardNumber').setInputError(error).showInputError();
  24. submit = false;
  25. }
  26. if (
  27. !jQuery.payment.validateCardExpiry(
  28. ccForm.find('#inputCardExpiry').payment('cardExpiryVal')
  29. )
  30. ) {
  31. ccForm.find('#inputCardExpiry').showInputError();
  32. submit = false;
  33. }
  34. }
  35. if (!jQuery.payment.validateCardCVC(ccForm.find('#inputCardCvv').val(), cardType)) {
  36. ccForm.find('#inputCardCvv').showInputError();
  37. submit = false;
  38. }
  39. if (!submit) {
  40. submitButton.prop('disabled', false)
  41. .removeClass('disabled')
  42. .find('span').toggle();
  43. e.preventDefault();
  44. }
  45. }
  46. jQuery(document).ready(function() {
  47. ccForm = jQuery('#frmPayment');
  48. ccForm.on('submit', validateCreditCardInput);
  49. jQuery('.paymethod-info input[name="ccinfo"]').on('ifChecked', function() {
  50. if (jQuery(this).val() === 'new') {
  51. showNewCardInputFields();
  52. } else {
  53. hideNewCardInputFields();
  54. }
  55. });
  56. jQuery('#billingAddressChoice input[name="billingcontact"]').on('ifChecked', function() {
  57. if (jQuery(this).val() === 'new') {
  58. showNewBillingAddressFields();
  59. } else {
  60. hideNewBillingAddressFields();
  61. }
  62. });
  63. ccForm.find('#inputCardNumber').payment('formatCardNumber');
  64. ccForm.find('#inputCardStart').payment('formatCardExpiry');
  65. ccForm.find('#inputCardExpiry').payment('formatCardExpiry');
  66. ccForm.find('#inputCardCvv').payment('formatCardCVC');
  67. ccForm.find('#ccissuenum').payment('restrictNumeric');
  68. });
  69. </script>
  70. <script src="{$BASE_PATH_JS}/jquery.payment.js"></script>
  71. <script src="{$BASE_PATH_JS}/StatesDropdown.js"></script>
  72. {else}
  73. <script>
  74. jQuery(document).ready(function() {
  75. jQuery('.paymethod-info input[name="ccinfo"]').on('ifChecked', function() {
  76. if (jQuery(this).val() === 'new') {
  77. var route = '{$newCardRoute}',
  78. delimiter = '?';
  79. if (route.indexOf('?') !== -1) {
  80. delimiter = '&';
  81. }
  82. window.location = route + delimiter + 'ccinfo=new';
  83. return true;
  84. }
  85. });
  86. });
  87. </script>
  88. {/if}