繁体   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