簡體   English   中英

根據選擇更改郵政編碼要求的輸入

[英]Change Zip Code required input based on selection

我需要從vb.net下拉列表或使用javascript更改特定國家的郵政編碼,我想更改郵政編碼要求,因為加拿大和美國的做法有所不同。 加拿大使用A1A 1A1格式,例如,如果我從國家/地區選擇加拿大,則應采用的郵政編碼格式為A1A 1A1,而對於其他國家/地區,則使用zipCodePattern = / ^ \\ d {5} [AZ] {1} $ | ^ \\ d {5}-\\ d {4} $ /; 我怎樣才能做到這一點。

我寫了這個

函數validateZipCode(郵政編碼){
var country = 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);
     }
}

使用javascript,您可以利用ternary operator在模式之間進行切換(使用jQuery,僅是因為它更易於閱讀)

 var pattern = '', usPattern = '^\\\\d{5}(-\\\\d{4})?$', caPattern = '^[ABCEGHJKLMNPRSTVXY]{1}\\\\d{1}[AZ]{1} *\\\\d{1}[AZ]{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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM