2014-11-24 3 views
0

У меня этот html с javascript, но я не знаю, почему он не работает. Теперь нужно рассчитать значения двух текстовых полей при нажатии кнопки. Однако ничего не происходит. Код:HTML javascript не работает

<!DOCTYPE html> 
<html> 
<body> 
    <h1>HTML Räpellys 2</h1> 
    <select id="mathType"> 
     <option value="0">Addition</option> 
     <option value="1">Subtraction</option> 
     <option value="2">Multiplication</option> 
     <option value="3">Division</option> 
     <option value="4">Shift Left</option> 
     <option value="5">Shift Right</option> 
     <option value="6">Increment</option> 
     <option value="7">Decrement</option> 
     <option value="8">AND</option> 
     <option value="9">OR</option> 
     <option value="A">XOR</option> 
    </select> 
    <p></p> 
    <form> 
     Value 1: <input type="text" id="val1" value=""></input> 
     <p></p> 
     Value 2: <input type="text" id="val2" value=""></input> 
    </form> 
    <p></p> 
    <button onclick="mathFunc">Calculate!</button> 
    <p></p> 
    <script> 
     function mathFunc() { 
      var box1 = document.getElementById("val1").value; 
      var box2 = document.getElementById("val2").value; 

      if (document.getElementById("mathType").value == 0) { 
       document.write(box1 + box2); 
      } 
     } 
    </script> 
    <noscript>Java is required to display this element!</noscript> 
</body> 
</html> 
+1

редактировать кнопку 'Рассчитать! 'to' ' –

+0

Если код не отображается правильно, разместив его здесь, пожалуйста, используйте его правильно. – Renan

+0

Вы также должны анализировать свои значения целым, иначе вы пытаетесь добавить строки, что означает 5 + 2 = 52. Таким образом, следующий параметр: var box1 = parseInt (document.getElementById ("val1").) Будет неан этим 5 + 3 = 7 – w3shivers

ответ

1

Вопрос заключается в том, что функция должна быть вызвана по щелчку: onclick="mathFunc()".

Как правило, я бы рекомендовал вам не использовать document.write в коде, но для целей отладки используйте консоль браузера и функцию console.log.

MDN:https://developer.mozilla.org/en/docs/Debugging_JavaScript#Console.log_in_Browser_Console

+0

Теперь я получил выходное значение, но javascript имеет некоторую странную логику -> 1 + 2 = 12. Разве это не должно быть 3? –

+0

@ Baka94 Да, должно быть. Свойство 'value' возвращает строковое значение, а' + 'будет выполнять конкатенацию строк. Чтобы исправить это, поставьте '+' перед значением или используйте функцию 'parseFloat':' parseFloat (box1) + parseFloat (box2) '. – VisioN

0

<form> тег должен содержать элементы формы ...

например <form> <select... , то я бы также убедиться, что я не получаю значение строки ввода Поля byt обертывают их с помощью parseFloat(). например:

var box1 = parseFloat(document.getElementById("val1").value) ;

также необходимо вызвать функцию как функцию, в основном то, что VISION сказанное выше: onclick="mathFunc()"

Смежные вопросы