下拉列表根据文本字段值的变化而变化

时间:2012-12-06 13:43:41

标签: javascript

我对javascript不是很好,我甚至不知道这是否可行。

我试图根据文本字段的值

选择一个下拉列表

我有以下文本字段,通过将成人和儿童的数量加在一起来计算。

<input type="text" name="Total" id="Total" onfocus="this.blur()"/>

我想要做的是取决于总计的价值有以下下拉列表更改。如果总计小于10,则下拉列表显示1小时,10到20之间显示2小时等

<select name="Duration">
<option value="1">1 Hr</option>
<option value="2">2 Hrs</option>
<option value="3">3 Hrs</option>
<option value="4">4 Hrs</option>
</select>

3 个答案:

答案 0 :(得分:1)

我认为这是您需要的总体方向(我只包括总数小于10的情况,因此您需要将其他情况添加到if语句中):

<input type="text" name="Total" id="Total" onfocus="this.blur()" onblur="if(this.value < 10) { document.getElementById('totalDropDown').value = 1; }"/>

<select name="Duration" id="totalDropDown">
    <option value="1">1 Hr</option>
    <option value="2">2 Hrs</option>
    <option value="3">3 Hrs</option>
    <option value="4">4 Hrs</option>
</select>

答案 1 :(得分:0)

你可以看看这个小提琴:http://jsfiddle.net/knnw8/1/

我会从

开始
<input type="text" name="Total" id="Total" onChange="fillCombobox(this)"/>

然后在小提琴中看到你想要的选项 (你当然也可以使用onBlur而不是onChange)

编辑:我已根据您的需求更新了小提琴

答案 2 :(得分:0)

尝试这个我认为这就是你需要的

<script type="text/javascript">

    function chkVal(ele){
        var val = ele.value;
        console.log(val);
        if(val < 10){
            $('#totalDropDown').val(1)
        }
        else if(val <= 20){
            $('#totalDropDown').val(2)
        }
        else if(val <= 30){
            $('#totalDropDown').val(3)
        }
        else if(val > 30){
            $('#totalDropDown').val(4)
        }

    }

</script>

<input type="text" onkeyup="chkVal(this)"/>

<select name="Duration" id="totalDropDown">
    <option value="1">1 Hr</option>
    <option value="2">2 Hrs</option>
    <option value="3">3 Hrs</option>
    <option value="4">4 Hrs</option>
</select>