Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下拉选择值在下拉选项中显示两次_Javascript_Php_Drop Down Menu - Fatal编程技术网

Javascript 下拉选择值在下拉选项中显示两次

Javascript 下拉选择值在下拉选项中显示两次,javascript,php,drop-down-menu,Javascript,Php,Drop Down Menu,我有一个javascript下拉列表,如果我选择了一年,它会自动删除年份。我的目标是在选项列表中只显示1次。例如,如果有3年201320142015。如果我选择2013。它显示如下 2013-selected 2013 2013 2014 2015. 请任何人帮助纠正这个问题 <select class="inputmedium" name="year_<?php echo $row->id; ?>" id="year_<?php echo

我有一个javascript下拉列表,如果我选择了一年,它会自动删除年份。我的目标是在选项列表中只显示1次。例如,如果有3年201320142015。如果我选择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>

跳过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);
}
for(变量i=min;i){
继续;
}
var opt=document.createElement('option');
opt.value=i;
opt.innerHTML=i;
选择.appendChild(opt);
}
请检查此项

  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);
        }
    }
var min=new Date().getFullYear(),
最大值=最小值+9,
select=document.getElementById('year');

for(var i=min;我对我来说很好:。我怀疑您在添加额外选项时还有其他原因。当我更新到mysql时,它会在下拉列表中显示两次。在这种情况下,您需要在for循环中添加条件,即如果已经选择标记选项具有值并限制该值。
    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);
        }
    }