Текстовое поле ввода JavaScript с добавлением плюс номер

63
9

У меня вопрос относительно добавления знака в JavaScript. Я немного смущен этим. У меня есть это текстовое поле ввода, которое я буду вводить как 50, и оно добавит плюс 50. Мой результат в добавлении чисел, которые, например, вводятся 50, составляет 5050, что совершенно неверно. Может ли кто-нибудь помочь мне в этом?

<!DOCTYPE html>
<html>
<head>
<title>activity 2</title>
<script type="text/javascript">
function computeSalary(){
var salaryData = document.form1.salary.value;
var salary1 = salaryData + 50;
document.form1.newSalary.value = salary1;
}
</script>
</head>
<body>
<form name="form1">
Enter the daily salary:
<input type="text" name="salary" /><br />
<input type="button" value="Compute" onClick="computeSalary();" /><br />
<br />
The new salary: <input type="text" name="newSalary" />
</form>
</body>
</html>

спросил(а) 2021-01-25T17:27:18+03:00 4 месяца, 3 недели назад
1
Решение
99

Вам необходимо преобразовать полученное значение из элемента управления ввода в float или integer, прежде чем добавлять его с помощью оператора+. Оператор + преобразует оба операнда в один и тот же тип перед добавлением обоих операндов. Это основная причина, по которой вы получили 5050, потому что 50 типов int были преобразованы в строку.

используйте этот код:

function computeSalary(){
var salaryData = document.form1.salary.value;
var salary1 = parseFloat(salaryData) + 50;
document.form1.newSalary.value = salary1;
}

ответил(а) 2021-01-25T17:27:18+03:00 4 месяца, 3 недели назад
45

Измените следующую строку:

var salary1 = parseInt(salaryData)  + 50; // Use parseInt or parseFloat

Причина в том, что JavaScript будет заставлять строки и целые числа в строки. Таким образом, ваше целое число 50 преобразуется в строку и затем конкатенируется.

ответил(а) 2021-01-25T17:27:18+03:00 4 месяца, 3 недели назад
45

Вы можете преобразовать строковое значение, которое вы получаете, которое привязано к вашему значению, к числу, просто добавив знак плюса:

var salary1 = +salaryData  + 50;

Пример jsFiddle

ответил(а) 2021-01-25T17:27:18+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема