2017-12-16 4 views
2

사용자가 자신의 포스트 코드를 입력하면 해당 영역을 지원하는지 확인하기를 원합니다. 이 작업을 완료했지만 수천 개의 가능한 엽서 코드 대신 배열에 우편 번호의 일부를 넣었습니다. SS12때문에이 SS12의 일부인 경우jQuery - 변수의 일부가 배열에 있는지 알아 보는 방법

var zips = ['CM14','CM11','CM12','CM13','SS16','SS15','CM1','CM2','CM4','SS12','SS13','SS14','CM15','SS11']; 
var bad = ['CM16','CM17','CM18','CM19','CM20','CM21','CM23','CM24','CM25','CM26','CM2','CM28','CM29']; 
$(function(){ 
    $('input[name=zip]').on('blur' , function(){ 
    var currentVal = $(this).val(); 
    var res = currentVal.toUpperCase(); 
    if($.inArray(res, bad)> -1){ 
    $('.checkout_button').prop('disabled',true); 
    alert("if") 
    } else if($.inArray(res, zips)> -1){ 
    alert("else if") 
    $('.checkout_button').prop('disabled',false); 
    } else { 
    alert("else") 
    $('.checkout_button').prop('disabled',true); 
     } 
    }); 
}); 

이 위의 작품을하지만 사용자가 다음 SS12 7HF에 입력 한 경우 다른 을 반환하도록 내가 원하는 : 이것은 내가 지금까지 무엇을 가지고 7HF. 나는 이것을 어떻게 완성 할까?

저는 jQuery를 처음 사용합니다.

답변

2

봅니다 공간 를 사용하여 분할 항상 일치하기 전에 첫 번째 부분 (지퍼) 얻을 :

var res = currentVal.split(' ')[0].toUpperCase(); 

코드 :

var zips = ['CM14', 'CM11', 'CM12', 'CM13', 'SS16', 'SS15', 'CM1', 'CM2', 'CM4', 'SS12', 'SS13', 'SS14', 'CM15', 'SS11']; 
 
var bad = ['CM16', 'CM17', 'CM18', 'CM19', 'CM20', 'CM21', 'CM23', 'CM24', 'CM25', 'CM26', 'CM2', 'CM28', 'CM29']; 
 
$(function() { 
 
    $('input[name=zip]').on('blur', function() { 
 
    var currentVal = $(this).val(); 
 
    var res = currentVal.split(' ')[0].toUpperCase(); 
 

 

 
    if ($.inArray(res, bad) > -1) { 
 
     $('.checkout_button').prop('disabled', true); 
 
     alert("if") 
 
    } else if ($.inArray(res, zips) > -1) { 
 
     alert("else if") 
 
     $('.checkout_button').prop('disabled', false); 
 
    } else { 
 
     alert("else") 
 
     $('.checkout_button').prop('disabled', true); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input name="zip" />

관련 문제