【问题标题】:dropdown selected value displays twice in dropdown option下拉选择的值在下拉选项中显示两次
【发布时间】:2013-11-03 08:12:08
【问题描述】:

我有一个 javascript 下拉菜单,如果我选择一年,它会自动删除年份,它会在下拉列表中显示 2 次。我的目标是在选项列表中仅显示 1 次。例如,如果 2013 年有 3 年, 2014,2015.如果我选择 2013 .它会这样显示

2013-selected
2013
2013
2014
2015.

请任何人帮助解决问题。

            <select class="inputmedium" name="year_<?php echo $row->id; ?>" id="year_<?php echo $row->id; ?>" value="<?php echo $row->year; ?>">
            <option ><?php echo $row->year; ?></option>
             <script type="text/javascript">
             var min = new Date().getFullYear(),
    max =  min + 20,
    select = document.getElementById('year_<?php echo $row->id; ?>');

for (var i = min; i<=max; i++){
    var opt = document.createElement('option');
    opt.value = i;
    opt.innerHTML = i;
    select.appendChild(opt);
}
</script>   </select>

【问题讨论】:

  • 对我来说很好用:jsfiddle.net/barmar/ddxm5/1。我怀疑你还有其他东西添加了额外的选项。
  • 当我更新到 mysql 时,它会在下拉菜单中显示两次
  • 在这种情况下,您需要在 for 循环中添加条件,即如果已经选择标签选项具有值并限制它。

标签: javascript php drop-down-menu


【解决方案1】:

跳过在 PHP 代码中添加的选项:

for (var i = min; i<=max; i++){
    if (i == <?php echo $row->year; ?>) {
        continue;
    }
    var opt = document.createElement('option');
    opt.value = i;
    opt.innerHTML = i;
    select.appendChild(opt);
}

【讨论】:

    【解决方案2】:

    请检查一下,

      var min = new Date().getFullYear(),
        max = min + 9,
        select = document.getElementById('year');
    
        for (var i = min; i <= max; i++) {
            var opt = document.createElement('option');
            opt.value = i;
            opt.innerHTML = i;
    
            var exists = 0 != $('#year option[value='+i+']').length;
    
            console.log(exists);
    
            if(!exists){    
                select.appendChild(opt);
            }
        }
    

    http://jsfiddle.net/ddxm5/2/

    另一种方法:

        var min = new Date().getFullYear(),
        max = min + 9,
        select = document.getElementById('year');
    
        for (var i = min; i <= max; i++) {
            var opt = document.createElement('option');
            opt.value = i;
            opt.innerHTML = i;
    
            var exists= select.options[select.selectedIndex].value;         
            console.log(exists);
    
            if(exists!=i){    
                select.appendChild(opt);
            }
        }
    

    http://jsfiddle.net/ddxm5/5/

    【讨论】:

      猜你喜欢
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多