JavaScript if 语句 : apply when a certain value changes to another certain value

标签 javascript jquery if-statement select

如何编写 if 语句,使其仅在选择框中的值 A 更改为值 B 时应用? https://jsfiddle.net/mademoiselletse/gv0ohdzv/1/

我有以下“英里”选择框和“剩余”输入框:

<div class="item_div"><label>Miles:</label>
    <select id="miles">
        <option value="10000">10,000</option>
        <option value="12000" selected>12,000</option>
        <option value="15000">15,000</option>
    </select>
</div>
<div class="item_div">
    <label>Residual: </label>
    <input type="number" id="resP" class="rmVal" value="52"> % 

</div>
<div>
    <label>Result (10000*Residual)</label>
    <input id = "result"></input>

</div>

我想为英里数加 1 <input>如果用户从 12000 变为 10000,则值。如果用户从 10000 变为 15000,我想减去 3。如果用户随后从 15000 变为 120000,我想 +1,依此类推。

相应里程的剩余值(value)为:
10000 英里:53%
12000 英里:52%
15000 英里:50%

我之所以要根据里程变化进行残值变化,是因为以后我希望用户可以手动更改残值,并根据里程调整残值。

$("#miles") 时,我尝试按照代码 +1从 12000 变为 10000,如果从 12000 变为 15000,则为 -2(第 13-26 行):

if (miles.val() == "12000") {
    miles.change(function() {
        if (miles.val() == "10000") {
            resN = resN +.01;
            resP.val(parseFloat(resP.val())+1);
            calculate();
        }
        else if (miles.val() == "15000") {
            resN = resN -.02;
            resP.val(parseFloat(resP.val())-2);
            calculate();
        }
    })
};

我为其他里程变化重复了 if 语句(第 27-55 行)。但是,该代码仅适用于第 1 英里和第 2 英里的更改。第3次就搞砸了。我想知道如何更正我的代码以及是否有更简单的方法来完成此操作。非常感谢!我非常感激!

最佳答案

将先前的值存储在变量中。

var cur_miles; // set default value of drop down

function milesChange (){
    switch(cur_miles){
        case "10000":
            switch(miles.val()){
                case "20000":
                // Do 10000 was changed to 20000 code
                break;
                case "30000":
                // Do 10000 was changed to 30000 code
                break;
            }
            break;
        case "20000":
            //...changed from 20000
            break;
        default:
            //...first time changed
            break;
    }
    // set cur_miles to current value
    cur_miles = miles.val();
}

关于JavaScript if 语句 : apply when a certain value changes to another certain value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33401935/

相关文章:

javascript - 在页面加载时运行 BlockUI?

javascript - 将用户选择的多个单选按钮选项存储在使用 ng-repeat 构建的 Angular js 中

windows - 为什么我的 IF 比较运算失败?

javascript - 无效的左侧赋值,检查一个变量并在 IF 语句中设置另一个变量

java - 将命令行参数评估为 boolean 表达式

javascript - 简单的 Javascript 查找和替换

javascript - 为什么在获取脚本路径时使用自执行匿名函数

javascript - 在 Mozilla 上如何选择表单之外的元素

javascript - 图像 slider 未出现

javascript - 将类添加到选择中的选项