У меня есть форма, которая вычисляет сумму и среднее значение набора введенных пользователем значений. Пользователи могут динамически добавлять поля ввода, чтобы они могли найти сумму и среднее значение как можно больше значений данных. Я пытаюсь доказать это так, что если они добавят поле, но оставят его пустым, это поле ввода будет проигнорировано в вычислениях. Когда в настоящий момент остается пустой, форма возвращает «NaN, NaN». Я попытался этоКак остановить пустые поля ввода от влияния вычислений в форме
$(':input[value=""]').attr('name', '');
на основе быстрого поиска, но это не имеет желаемого эффекта (форма по-прежнему возвращает "NaN, NaN.
Расчеты выполняются, когда пользователь нажимает кнопку с использованием следующего JQuery
$(".calc").click(function() {
$("input[type=text]").each(function() {
arr.push($(this).val());
sum += parseInt($(this).val());
});
var n = arr.length;
var AVG = (sum/n);
alert(sum + "," + AVG);
arr = [];
sum = 0;
});
Любые предложения?
Используйте инструкцию if, чтобы проверить, что такое $ (this) .val(). Если поле пустое, оно должно возвращать пустую строку, которая дает вам NaN, когда вы пытаетесь вызвать parseInt на нем. – kaminari
Почему бы просто не проверить каждое поле и, если оно пустое, вычесть его из числа полных полей, чтобы разделить и игнорировать значение поля? – Araymer
Добавлен простой || оператор. проверьте мой ответ –