문제는 이미 (그냥 복사/붙여 넣기 stackoverflow에서 일부 코드) 그것을 알아 낸 것입니다. 그러나 저에게 중요한 것은 단지입니다. CC 번호를 입력하고 "Tab"을 누를 때마다 자동으로 만료 유효성이 검사됩니다. 나는 2 박스에 onchange 속성을 사용했다. 제 코드를 조정하도록 도와주세요. 내가 결과에 대해 원하는 것이 무엇자바 스크립트 신용 카드 번호 및 유효 기간 확인
입니다 ..
내가 CC 번호 입력하고 "탭"CC 텍스트 상자 [그 유효성을 검사] 아직 아직 만료 텍스트 상자를 [검증 할 수 없습니다에 대한 onchange를 속성 공격 - 언제 검증].
나는 모든 것을 시도했지만 작동하지 않습니다. ..hehe. Im 죄송합니다. 저는 정말로 자바 스크립트를 작성하지 않았습니다. 고맙습니다.
자바 스크립트
<!-- START: VALIDATION IN CREDIT CARDS -->
<script type="text/javascript">
//START: FOR CREDIT CARD NUMBER
function validateCard(card_no){
var Check_MasterCard = /^([51|52|53|54|55]{2})([0-9]{14})$/;
var Check_Visa = /^([4]{1})([0-9]{12,15})$/;
if(Check_Visa.test(card_no)){
document.getElementById('cardSuccess').style.display = "block";
document.getElementById('cardSuccess_1').style.display = "none";
document.getElementById('cardError').style.display = "none";
return true;
}else if(Check_MasterCard.test(card_no)){
document.getElementById('cardSuccess_1').style.display = "block";
document.getElementById('cardSuccess').style.display = "none";
document.getElementById('cardError').style.display = "none";
return true;
}else{
document.getElementById('cardError').style.display = "block";
document.getElementById('cardSuccess_1').style.display = "none";
document.getElementById('cardSuccess').style.display = "none";
return false;
}
}
//END: FOR CREDIT CARD NUMBER
function validateForm(){
// Set error catcher
var error = 0;
// Validate Credit Card
if(!validateCard(document.getElementById('card_no').value)){
error++;
}
if(error > 0){
return false;
}
//FOR EXPIRY VALIDATION
var datereg = /^(0[1-9]|1[012])[- /.](19|20)\d\d+$/;
if (!datereg.test(document.getElementById('credit_card_exp').value)) {
document.getElementById("expiry_error1").style.display="block";
document.getElementById("expiry_error").style.display="none";
return false;
}
var currentDate = new Date(); //this returns the current datetime
//Clear all the other date parts.
currentDate.setDate(0);
currentDate.setHours(0);
currentDate.setMinutes(0);
currentDate.setSeconds(0);
currentDate.setMilliseconds(0);
var year = parseInt(payment_form.credit_card_exp.value.split('/')[1]);
var month = parseInt(payment_form.credit_card_exp.value.split('/')[0]);
var dateToCheck = new Date(year,month,0,0,0,0,0);
if (dateToCheck.getTime() < currentDate.getTime()){
//invalid date
document.getElementById("expiry_error").style.display="block";
document.getElementById("expiry_error1").style.display="none";
return false;
}
document.getElementById("expiry_error").style.display="none";
document.getElementById("expiry_error1").style.display="none";
return true;
//END FOR EXPIRY VALIDATION
}
</script>
<!-- END: VALIDATION IN CREDIT CARDS -->
HTML :
validateCreditCard 및 validateExpiration
그럼 당신은 당신의 validateCreditCard 기능을 사용할 수 있습니다
<form id='payment_form' name="payment_form" method="post" action="exec_order_process.php" onsubmit="return validateForm();">
Card Number*
<input class="form-control" onchange="return validateForm();" name="card_no" id="card_no" type="text" maxlength="16" required="required" placeholder="Enter Card number" >
<span class="alert alert-danger changeFont" id="cardError" style="display: none;">You must enter a valid Credit Card for VISA and MasterCard Only<span class="glyphicon glyphicon-remove"></span></span>
<span class="alert alert-success changeFont" id="cardSuccess" style="display: none;">This is a VISA card <span class="glyphicon glyphicon-ok"></span></span>
<span class="alert alert-success changeFont" id="cardSuccess_1" style="display: none;">This is a MasterCard <span class="glyphicon glyphicon-ok"></span></span>
Expiration*
<input onchange="return validateForm();" class="form-control" name="credit_card_exp" id="credit_card_exp" type="text" maxlength="7" onchange="validCCForm(this);" required placeholder="MM/YYYY ">
<label class="error" id="expiry_error" style="display: none;">Credit Card Expired</label>
<label class="error" id="expiry_error1" style="display: none;">Enter valid Date Format</label>
<input type="submit" value="Submit">
</form>
이 질문에 PHP가 있습니까? 모든 JS와 같게 들립니다. 문제가있는 것처럼 들리 겠지만, JS가 작동하고 유효성이 확인되지 않습니다. cc 유효성 검사 문제가있는 경우 여기에 스레드가 있습니다. http://stackoverflow.com/questions/9315647/regex-credit-card-number-tests. – chris85
죄송합니다, 내 잘못 .. 오타 오류 .. 사촌 내가 검색 할 때마다, 나는 PHP MYSQL을 사용합니다 .. 그래서 습관이 있어야합니다 .. 죄송합니다 다시 .. 스레드에 감사드립니다 .. – Adrian