【问题标题】:User has choice of two inputs but only one is required.用户可以选择两种输入,但只需要一种。
【发布时间】: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


【解决方案1】:

试试这个:

<input type="text" id="choose" />
<input type="text" id="write" />

和 jQuery:

$("#choose, #write").keyup(function(){
  if($("#choose").val() != "") {
    $("#write").hide();
  }else if($("#write").val() != "") {
    $("#choose").hide();
  }else{
    $("#write").show();
    $("#choose").show();
  }
});

这是fiddle 为您工作

满足您需求的新 fiddle。添加了清除颜色按钮,使用您的 ID,input type="color" 的事件已更改为 .change()

【讨论】:

  • 这很尴尬。我按错了按钮。对不起:)
  • @Jamiec 没关系 :D 只是想知道为什么,我很高兴听到这不是因为我的错误))
  • 我已经尝试了你的建议(小提琴正是我所追求的功能),但它不起作用。它也没有抛出任何错误。我尝试在每个阶段之间使用console.log(''),但它们也没有出现。
  • @SamJohnson 您是否已将 ID 更改为您正在使用的 ID? (例如#ral-colour-code 来自#choose)。
  • 是的 - 所以颜色代码框有id='ral-colour-code write',颜色选择器有id='choose-a-colour choose'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
  • 2011-01-24
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多