使用 jquery 从选择框中获取值

问题描述

我正在尝试获取选择框中的值并更改另一个字段的输入 frontend

如您所见,邮政编码输入中的掩码是_-

如果我选择葡萄牙,我希望我的掩码像 9999-999,如果另一个国家是空的或其他格式

这是代码

if ($("input[name='postcode']").length) {
            $("input[name='postcode']").inputmask({"mask": "9999-999"});
        } else if ($("input=[name='postcode']").length && $("option=[value='PT']")) {
            $("input[name='postcode']").inputmask({"mask": "99999-99999"});
        }

我怎样才能做到这一点?

PS:我在 Magento 上做这个

这是选择代码

<select class="select" data-bind="
attr: {
    name: inputName,id: uid,disabled: disabled,'aria-describedby': getDescriptionId(),'aria-required': required,'aria-invalid': error() ? true : 'false',placeholder: placeholder
},hasFocus: focused,optgroup: options,value: value,optionsCaption: caption,optionsValue: 'value',optionsText: 'label',optionsAfterRender: function(option,item) {
    if (item && item.disabled) {
        ko.applyBindingsToNode(option,{attr: {disabled: true}},item);
    }
}"name="country_id" id="CV73BUT" aria-required="true" aria-invalid="false">

这是邮政编码

<input class="input-text" type="text" data-bind="
value: value,valueUpdate: 'keyup',attr: {
    name: inputName,placeholder: placeholder,disabled: disabled

}" name="postcode" aria-required="true" aria-invalid="false" id="J5KT615">

select 和 input 的 id 总是在刷新后变化

解决方法

你可以做这样的事情。看下面的例子

$('#countrys').change(function(){
    var country = $('#countrys').find(':selected').attr('data-countryCode');
    if (country == 'pt')
    {
      $('#zipcode').val('999-999');
    }else{
      $('#zipcode').val('n/a');
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="countrys">
  <option data-countryCode="fr">france</option>
  <option data-countryCode="it">Italy<option>
  <option data-countryCode="pt">Portugal</option>
  <option data-countryCode="sp">Spain</option>
</select>

<input id="zipcode">