【发布时间】: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