2017-10-06 125 views
0

我目前使用JavaScript与HTML创建一个数字输入,一旦输入数字,选择列表中的选项会告诉是否将数字加倍。我觉得我已经做了一切正确的事情,但是,当我运行我的代码并选择yes来加倍时,输出数字就是数字输入,并且不会加倍。我假设我的if声明不正确,但我不确定,我是JavaScript新手。欣赏任何反馈。JavaScript与HTML if语句

HTML

<body> 
    <input id = 'number' name = '' value = '' class = ''> 
    <select id = 'double' name = ''> 
     <option value = 'Y'>YES</option> 
     <option value = 'N'>NO</option> 
    </select> 
    <button id = 'go' class = ''>GO</button> 
    <input id = 'result' name = '' value = '' class = ''> 
    <script src = 'js/javascript 03.js'></script> 
</body> 

的JavaScript

document.getElementById('go').onclick = function() { 
    var number = document.getElementById('number').value; 
    var double = document.getElementById('double').value; 
    number = parseFloat(number); 

    if (double == 'Y') { 
     number * 2; 
    }; 

    document.getElementById('result').value = number; 
}; 
+5

'号* 2'确实数量的两倍......但没有'='在该行没有关系没有分配给任何东西。 –

+2

您需要重新分配变量'number',使用'number = number * 2;' – Titus

+0

@NiettheDarkAbsol,但是如果我指定number = number * 2,则会选择yes来加倍和no来保持数字相同。它每次只增加一倍 – Astonishing

回答

1

number * 2;不会存储任何位置值。您应该使用的2例在这里之一:

number *= 2; 
number = number * 2; 
+0

,但是如果我指定number = number * 2,这会影响选择yes双倍和不保持数字相同。它只是每次增加一倍 – Astonishing

+0

不,因为你只有在用户选择加倍时才这样做...... – Salketer

0

正如在评论中提到你的问题,这样做只是number * 2将评估的值。但该值不存储,所以你需要将它放回了自己的变量:

number = number * 2;