Добавление переменных Javascript - PullRequest
1 голос
/ 16 декабря 2011

Итак, я относительно новичок в JavaScript и мне было интересно, как мне добавить значения из двух входных данных и вывести результат. Вот что у меня есть:

function math (form) {
    var input1 = form.input1.value;
    var input2 = form.input2.value;
    var input3 = input1 + input2;
    document.write (input3);
}
<form action="" method="GET">
   <input type="text" name="input1">
   <input type="text" name="input2">
   <input type="button" name="button" onClick="math(this.form)">
</form> 

Я ожидал, что когда я введу число в каждый вход, оно выплюнет сумму двух чисел. Вместо этого он просто печатает оба номера по отдельности.

Как я могу получить его, чтобы напечатать сумму двух чисел?

Ответы [ 5 ]

17 голосов
/ 16 декабря 2011

.value дает символы в текстовом поле, то есть строку. Вам как-то нужно сказать JavaScript, что это число. В противном случае вы объединяете строки (str + str объединяет; num + num добавляет арифметическое).

Преобразование строки в число легче всего сделать с помощью +, например:

+input1

Итак, в вашем случае:

document.write(+input1 + +input2);

Однако, document.write - это не способ показывать вещи. Вы, вероятно, хотите alert, или поместите его в другое текстовое поле или что-то подобное. document.write очистит экран.

12 голосов
/ 16 декабря 2011

Это строки, когда вы их читаете, они должны быть проанализированы первыми,

var input3 = parseInt(input1, 10) + parseInt(input2, 10);

[Редактировать] Просто для уточнения, разница между parseInt и Унарным Плюсомнаходится в обработке ошибок,

var a = parseInt('123o45', 10); //123
var b = +'123o45' // NaN
3 голосов
/ 16 декабря 2011

parseInt - твой бранд здесь ..

function math (form) {
  var input1 = form.input1.value;
  var input2 = form.input2.value;
  var input3 = parseInt(input1, 10) + parseInt(input2, 10);
  document.write (input3);
}
1 голос
/ 16 декабря 2011

Сначала вам нужно будет разобрать их в целые числа, используя parseInt.

0 голосов
/ 28 августа 2018

Мой работал хорошо с разбором их до Float, поскольку у меня были десятичные цифры. Вместо parseInt() я использовал parseFloat().

Надеюсь, это поможет кому-нибудь в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...