日期:2014-05-16  浏览次数:20412 次

javascript中select算法
一个表单中有三个select下拉框,javascript怎么实现先选择一个下拉框的值,其它两个下拉框的值都比这个选择的值小,再选择第二个下拉框选择值之后,使得第三个下拉框的值只能是默认的值,且这三个下拉框的值相加为100?三个下拉框取值从0%、10%、20%、30%.....100%选择
javascript中select算法

------解决方案--------------------
贴出的html代码,说明一下你想要实现的效果。
------解决方案--------------------
A:<select name="selectOne" id="selectOne" onchange="changeSelect(0)">
    <option value="4">40%</option>
    <option value="5">50%</option>
    <option value="6">60%</option>
    <option value="7">70%</option>
    <option value="8">80%</option>
    <option value="9">90%</option>
    <option value="10" selected="selected">100%</option>
</select>
B:<select name="selectTwo" id="selectTwo" onchange="changeSelect(1)">
    <option value="0">0%</option>
    <option value="1">10%</option>
</select>
C:<select name="selectThree" id="selectThree">
    <option value="0">0%</option>
</select>
<script type="text/javascript">
function changeSelect(id){
    var one=document.getElementById("selectOne");
    var two=document.getElementById("selectTwo");
    var three=document.getElementById("selectThree");
    var onev=one.options[one.selectedIndex].value;
    var n=10-onev, l,b=false;
    three.innerHTML="";
    if(id==1){
        l=n-two.options[two.selectedIndex].value;
        three.add(new Option(l*10+"%",l));
    }else{
        two.innerHTML="";
        for(var i=0;i<=n;i++){
            l=n-i;
            if(i<onev&&l<onev){
                two.add(new Option(i*10+"%",i));
                if(!b){
                    three.add(new Option(l*10+"%",l));
                    b=true;
                }
            }
        }
    }
}
</script>