【问题标题】:Getting value from select box with jquery使用 jquery 从选择框中获取值
【发布时间】:2021-09-21 18:20:29
【问题描述】:

我正在尝试获取选择框中的值并更改另一个字段的输入 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',
hasFocus: focused,
attr: {
    name: inputName,
    placeholder: placeholder,
    'aria-describedby': getDescriptionId(),
    'aria-required': required,
    'aria-invalid': error() ? true : 'false',
    id: uid,
    disabled: disabled

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

select和input的id在刷新后一直在变化

【问题讨论】:

  • 注意,使用jquery,不需要先检查元素是否存在; jquery 将适用于所有匹配的元素或不适用。所以不需要if ($("#id").length) $("#id").show() 只需使用$("#id").show() - 所以你的第一个if 将永远是真的。 (另请注意 $("input=[name... 不是一个有效的选择器,我假设你正在尝试一些东西/想看看它是如何工作的
  • @freedomn-m 我用选择和输入的代码编辑了帖子。我不知道现在是否更清楚了。因为如果用户选择葡萄牙,我希望掩码与输入掩码 9999-999 一起使用,如果不是,则为 99-99 或类似的东西

标签: javascript jquery magento jquery-inputmask


【解决方案1】:

你可以做这样的事情。请参阅下面的示例

$('#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">

【讨论】:

  • 感谢 awnser 的人,但我认为我的项目是这样制作的,我不能使用它。我选择国家/地区的方式来自 Magento 后台,因此我无法“选择”热门选项出现。而输入掩码实际上是一个功能,允许用户以那种条件和格式编写邮政编码
  • 您只需将 data-countryCode 添加到您的选项中,您就可以在后台执行此操作,您已经使用其他选项执行此操作。您可以在pt.stackoverflow.com 寻求帮助,您可以在那里更好地表达自己。蟒蛇排序;)
  • 谢谢伙计。是的,也许我可以用我的语言更好地解释自己xd
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
  • 2012-10-05
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
  • 2013-10-11
相关资源
最近更新 更多