2016-02-17 2 views
0

Мне нужно изменить почтовый индекс для отдельной страны из выпадающего списка в vb.net или с помощью javascript. Я хочу изменить требования к почтовому индексу, так как Канада и США делают это по-другому. Канада использует формат A1A 1A1, например, если я выбираю Канаду из страны, формат почтового индекса, который он должен принять, это A1A 1A1, а для другой страны он имеет комбинацию zipCodePattern =/^ \ d {5} [AZ] {1} $ |^\ д {5} - \ d {4} $ /; как я могу это сделать.Изменить индекс Zip-код на основе выбора

я написал эту

функция validateZipCode (почтовый индекс) {
вар страна = document.getElementById ("lblCountry");

 if (country=="Canada") 
     { 

     var zipCodePattern = /^[A-Z}{1}[0-9]{1}[A-Z]{1}[ ]{1}[0-9]{1}[A-Z]{1}[0-9]{1}$/; 
     return zipCodePattern.test(zipcode); 
    } 
    else 
    { 
     var zipCodePattern = /^\w{6}$|^\d{5}-\d{4}$|^\d{5}$/; 
     return zipCodePattern.test(zipcode); 
    } 
} 

ответ

1

Использование JavaScript можно использовать в ternary operator для переключения между паттернами (используется JQuery, только потому, что это проще читать)

var pattern = '', 
 
    usPattern = '^\\d{5}(-\\d{4})?$', 
 
    caPattern = '^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$' 
 

 
// watch for country change 
 
$('select').on('change', function(){ 
 
    
 
    // get the selected country 
 
    var val = $(this).val(); 
 
    
 
    // set pattern based on `val` above 
 
    pattern = val == 'us' ? usPattern : caPattern; 
 
    
 
    // apply pattern to input 
 
    $('input#postcode').attr('pattern', pattern) 
 
    
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <select> 
 
    <option value="us" selected>US</option> 
 
    <option value="ca">CA</option> 
 
    </select> 
 

 
    <input id="postcode" type="text" pattern="^\d{5}(-\d{4})?$" required> 
 
    <input type="submit"> 
 
</form>

Смежные вопросы