【发布时间】:2018-01-11 09:57:04
【问题描述】:
对于创建油漆制造商网站,产品页面需要让用户选择输入 RAL 颜色代码或使用颜色选择器选择颜色。
为此,我使用了:
<p class="line-item-property__field">
<label for="ral-colour-code">RAL Colour Code</label>
<input required class="required" id="ral-colour-code" type="text" name="properties[RAL Colour Code]">
</p>
<p class="line-item-property__field">
<label for="choose-a-colour">OR Choose a colour</label>
<input id="choose-a-colour" type="color" name="properties[Choose a colour]">
</p>
这实现了主要目标,因为用户选择的颜色包含在公司收到的确认订单中。然而,我担心的是,在某些情况下,用户可能会使用选择器选择颜色,然后输入准确的颜色代码——这两者都将包含在确认中。我想最好的做法是在将文本输入另一个输入时禁用一个输入,但是用户需要清楚这两个选项中的哪一个将应用于他们的订单。
我尝试了什么: 经过一番挖掘后,我发现回答了here 的类似问题。所以我尝试了:
jQuery(function ($) {
var $inputs = $('properties[RAL Colour Code],properties[Choose a colour]');
$inputs.on('input', function () {
// Set the required property of the other input to false if this input is not empty.
$inputs.not(this).prop('required', !$(this).val().length);
});
});
这返回了以下错误:
Error: Syntax error, unrecognized expression: properties[RAL Colour Code],properties[Choose a colour]
除了错误之外,我认为这可能不是我正在寻找的解决方案,因为它只是删除了required 标签,但大概用户仍然可以选择填写两者。
【问题讨论】:
-
'properties[RAL Colour Code],properties[Choose a colour]'不是选择器 -
我建议添加一个
select元素来选择用户想要输入的颜色类型,然后隐藏/显示正确的输入。
标签: javascript jquery html forms shopify