
JavaScript
JavaScript. Как прибавить между собой инпуты.
Надо чтоб они плюсовались друг с другом. Мой вариант почему то выдает ответ не от "1+1+1" а "111"


var p = +test.value+tets2.value+test3.value;
Александр Астафьев
не помогло
То что вводится с клавиатуры это всегда строка. И ее нужно приводить к числовому типу
Александр Астафьев
я итак привел, написал "number"
var test = document.getElementById('test');
var test2 = document.getElementById('test2');
var test3 = document.getElementById('test3');
var p = +test.value + (+test2.value) + (+test3.value);
alert( test );
_____________
Number("строка")
+"строка"
делают одно и то же - превращают строку в число. Причем плюсик можно использовать без скобок.
Код будет работать и без первых 3-х строчек, но вредно привыкать так писать... это потенциальный источник ошибок, если код станет чуть больше.
P.s. https://learn.javascript.ru/ - первые 4-5 разделов необходимы...
____________________________
То, что JS съел эту хрень из картинки, не значит что надо так делать...
document.getElementById( "test".value );
У строки "test" нет свойства value, поэтому "test".value возвращает `undefined`
document.getElementById( undefined );
возвращает null... который никуда не сохраняется, поэтому всё еще нет ошибки...
Но браузер сам создает глобальные переменные, ссылающиеся на HTML-элементы, одноименные с их `id`...
test.value + test2.value + test3.value
Это правда значения соответствующих инпутов, но они получаются в виде строки, а строки не суммируются как числа, даже если в них хранятся числа.
var test2 = document.getElementById('test2');
var test3 = document.getElementById('test3');
var p = +test.value + (+test2.value) + (+test3.value);
alert( test );
_____________
Number("строка")
+"строка"
делают одно и то же - превращают строку в число. Причем плюсик можно использовать без скобок.
Код будет работать и без первых 3-х строчек, но вредно привыкать так писать... это потенциальный источник ошибок, если код станет чуть больше.
P.s. https://learn.javascript.ru/ - первые 4-5 разделов необходимы...
____________________________
То, что JS съел эту хрень из картинки, не значит что надо так делать...
document.getElementById( "test".value );
У строки "test" нет свойства value, поэтому "test".value возвращает `undefined`
document.getElementById( undefined );
возвращает null... который никуда не сохраняется, поэтому всё еще нет ошибки...
Но браузер сам создает глобальные переменные, ссылающиеся на HTML-элементы, одноименные с их `id`...
test.value + test2.value + test3.value
Это правда значения соответствующих инпутов, но они получаются в виде строки, а строки не суммируются как числа, даже если в них хранятся числа.
https://jsfiddle.net/xfzb576v/
Как уже ответили, тип значения "строка", нужно привести к числовому.
let form = document.getElementById( "sum" );
form.addEventListener( "submit", ( e ) => {
e.preventDefault();
alert(
( +form.elements.a.value ) + ( +form.elements.b.value )
);
});
Как уже ответили, тип значения "строка", нужно привести к числовому.
let form = document.getElementById( "sum" );
form.addEventListener( "submit", ( e ) => {
e.preventDefault();
alert(
( +form.elements.a.value ) + ( +form.elements.b.value )
);
});
Похожие вопросы
- Есть ли аналоги JavaScript?
- С чего начать учить JavaScript?
- Подскажите книги для изучения javascript? Хочу начать изучать веб программирование javascript подойтет для начала?
- Зачем нужен prototype в JavaScript?
- Тяжело ли выучить JavaScript?
- Как создать квадрат через JavaScript?
- Смотрел я тут учебный курс Евгения Попова по javascript. Удивил он (Попов) в паре мест...
- Имеет ли смысл изучать JavaScript если я полный ноль в веб программировании?
- Как установить JavaScript на ноутбук Asus ?
- Сложности с JavaScript