2016-08-20 65 views
1

我正在從事一個信用卡項目。我有一個JavaScript函數(validateCreditCard),可以幫助我驗證信用卡並返回信用卡類型。獲得信用卡類型後,我將存儲爲在提交表單後使用的隱藏輸入值cardType。點擊提交按鈕後,如果功能cardFormValidate返回true,用戶將被帶到'proceed.php'。驗證表格是否符合條件

這是我試圖通過編寫這些代碼行來實現的,但隱藏輸入的值仍爲空。請幫助我。 對不起我不是以英語爲母語

function cardFormValidate() { 
 

 
     //Card validation 
 
     var card_number = $('#CreditCardNumber'); 
 
     card_number.validateCreditCard(function (result) { 
 
      var cardType = (result.card_type == null) ? '' : result.card_type.name; 
 
      if (result.valid) { 
 
       $("#cardType").val(cardType); 
 
       cardValid = true; 
 
      } else { 
 
       $("#cardType").val(''); 
 
       cardValid = false; 
 
      } 
 
      return cardValid; 
 
     }); 
 

 
    } 
 

 
    $(document).ready(function() { 
 

 
     //Submit card form 
 
     $("#PayButton").on('click',function(){ 
 
      if (cardFormValidate()) { 
 
       //Move to proceed.php to treat the form 
 
      }else{ 
 
       alert('bad credit card'); 
 
      } 
 
     }); 
 
    });
<form method="post" action="proceed.php"> 
 
    <input name="cardType" type="hidden" id="cardType"> 
 
    <div class="form-group"> 
 
     <label for="NameOnCard">Name on card</label> 
 
     <label for="NameOnCard"></label><input id="NameOnCard" class="form-control" type="text" name="NameOnCard" maxlength="255"/> 
 
    </div> 
 
    <div class="form-group"> 
 
     <label for="CreditCardNumber">Card number</label> 
 
     <input id="CreditCardNumber" class="null card-image form-control" name="CreditCardNumber" type="text"/> 
 
    </div> 
 
    <button id="PayButton" type="submit"></button> 
 
</form>

+0

你確定你的JS函數未執行'else {(「#cardType」)。val(''); cardValid = false; }'else part ??? –

回答

1

我覺得validateCreditCard功能不能正常運行,並您得到空值..

1)首先檢查你得到Card_Number ??

alert(card_number)如果沒有的話 嘗試這一行

var card_number = $('#CreditCardNumber').val(); 
validateCreditCard

2)返回數據必須name屬性檢查出來,否則你會得到空值..