【问题标题】:Removing multiple select option from drop down [duplicate]从下拉列表中删除多选选项[重复]
【发布时间】:2013-04-15 11:06:20
【问题描述】:

有谁知道如何从表单下拉列表中删除多个options?我想从数据库中读取数据,并根据它的值删除一些options。

<select name="year">
    <option value="1">First year/option>
    <option value="2">Second year</option>
    <option value="3">Third year</option>
</select>

从数据库中读取数据后,我想根据数据的值删除一些值。因此,如果数据值为3,我想从下拉列表中删除值12..

【问题讨论】:

  • 您需要在从 db 获取数据时在 while 循环中动态生成表单

标签: php jquery


【解决方案1】:

您可以使用filter() 过滤掉自定义条件下的元素。

Live Demo

$('[name=year] option').filter(function(){
    return this.value != '3'
}).remove();

Live Demo

$('select :not(option[value=3])').remove();

编辑基于 cmets,过滤元素的值小于给定值。

使用&lt; 运算符代替== then 并将值视为数字而不是字符串,

$('[name=year] option').filter(function(){
    return parseInt(this.value) < 3
}).remove();

【讨论】:

  • Tnx 这对我有帮助,但我忘了问问题:如果 db 的值为 2,我想删除值 1。所以我想删除比数据库中的值更低的值。
  • 使用
【解决方案2】:

您所要做的就是拥有同一个下拉框的 2 个部分。在需要动态生成选项的部分中,省略不需要的选项。

   if($data_from_db){
      <select name="year">
       <option value="1">First year/option>
       <option value="2">Second year</option>
      </select>
   }
   else{
     <select name="year">
       <option value="1">First year/option>
       <option value="2">Second year</option>
       <option value="3">Third year</option>
     </select>
   }

【讨论】:

    【解决方案3】:

    你可以使用这样的东西

    $("select option[value!='3']").remove();
    

    【讨论】:

      猜你喜欢
      • 2012-03-11
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 2019-01-02
      • 2014-08-28
      • 1970-01-01
      相关资源
      最近更新 更多