根据用户选择隐藏字段?

是否可以根据用户的答案在选择字段中隐藏选项?使用Javascript / jQuery。

我有一个非常复杂且冗长的形式,并且我想尽量避免加载HTML元素,因为条件逻辑会变得非常令人困惑。

因此用户将遵循类似的内容: 1.第一步:选择颜色(红色,蓝色,绿色,橙色)。 2.第二步:选择一个数字(1、2、3、4、5、6)。根据在第一个字段中选择的颜色显示不同的数字。 3.第三步:按钮显示时,链接不在现场,链接将取决于第一步,然后取决于第二步。

选择的示例可能是: 1.选择红色(红色,蓝色,绿色,橙色), 2.由于红色选择,所以选择了1(仅显示1、2、3)。 3.链接到Red 1产品。

很难解释,所以我真的希望这有意义。

作为示例,以上只是表格的一小部分。

以下是我的一些示例HTML:

<select name="color" class="colour">
  <option value="red">Red</option>
  <option value="blue">Blue</option>
  <option value="green">Green</option>
  <option value="orange">Orange</option>
</select>

<select name="numbers" class="numbers">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select>

我知道我可以使用与此类似的代码,但是最终我将不得不创建不同选择元素的负载,因为根据每个字段中的选择有很多不同的选项。

$('.colour').on('change',function(){
if ( $(this).val()=== "red") {
  $(".numbers").show();
}
else {
  $(".numbers").hide();
}
anlijinhuawei 回答:根据用户选择隐藏字段?

function loadBtn(){
   let colour = $(".colour").val();
   let numbers = $(".numbers").val();
   $('.btn').html(colour+" - "+numbers);
   $('.btn').attr("href","http://yourURL.com/?colour="+colour+"&numbers"+numbers);
}

function loadNumbers(elem){
  let value = $(elem).val();
  let range = $(elem).find("option:selected").attr("numberRange");
  let newRanges = range.split(",").map(num => `<option value="${num}">${num}</option>`).join("");
  $('.numbers').html(newRanges);
}

loadNumbers($(".colour"));
loadBtn();

$('.colour').on('change',function(){
  loadNumbers(this);
  loadBtn();
});

$('.numbers').on('change',function(){
  loadBtn();
});
<script src="https://code.jquery.com/jquery-3.4.1.min.js" type="text/javascript"></script>
<select name="color" class="colour">
  <option value="red" numberRange="1,2,3">Red</option>
  <option value="blue" numberRange="1,2">Blue</option>
  <option value="green" numberRange="1,3,4">Green</option>
  <option value="orange" numberRange="1,4,5,6">Orange</option>
</select>

<select name="numbers" class="numbers">
</select> 
<a class="btn" href=""></a>

本文链接:https://www.f2er.com/3143225.html

大家都在问