【问题标题】:Jquery/Javascript: Compare two dropdown min and max values?Jquery/Javascript:比较两个下拉最小值和最大值?
【发布时间】:2020-11-06 11:51:43
【问题描述】:

我有两个下拉菜单。一个有最小值,另一个有最大值。

如果选项小于最小值,我会尝试禁用最大下拉列表中的选项

<div>
  <select id="min">
    <option>Select min</option>
    <option value=0>0</option>
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    <option value=4>4</option>
    <option value=5>5</option>
  </select>

  <select id="max">
    <option>Select max</option>
    <option value=2>2</option>
    <option value=3>3</option>
    <option value=4>4</option>
    <option value=5>5</option>
    <option value=6>6</option>
    <option value=7>7</option>
  </select>
</div>

【问题讨论】:

标签: javascript html jquery


【解决方案1】:

仅供参考:如果您不设置 option 元素的 value 属性,则 value 将成为该 option 的文本内容,因此在您的情况下,您不需要在任何options 上设置value

查看其他内联 cmets:

let maxSelect = document.getElementById("max");
let minSelect = document.getElementById("min")

// When the first select's value is changed...
minSelect.addEventListener("change", function(){

  // Loop through all the <option> elements in the second list
  maxSelect.querySelectorAll("option").forEach(function(opt){
  
    // Check the option value to see if it is more than the value
    // of the first select. If so, disable it, otherwise enable it.
    // The prepended + implicitly converts the string values to numbers
    if(+minSelect.value > +opt.value){
      opt.disabled = true;
    } else {
       opt.disabled = false;   
    }
    
  });

});
<div>
  <select id="min">
    <option>Select min</option>
    <option>0</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
  </select>

  <select id="max">
    <option>Select max</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
  </select>
</div>

【讨论】:

  • https://jsfiddle.net/thorstorm1102/x7zsapy2/6/ 你可以在这里查看。如果输入是101。禁用了错误的下拉值
  • @Zanthoxylumpipertum 哦,那里有小虫子。我们需要将select 值转换为数字(默认情况下它们是字符串)才能进行数字比较。我会更新我的答案。
猜你喜欢
  • 1970-01-01
  • 2018-10-30
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
相关资源
最近更新 更多