Надеюсь, это будет довольно простой вопрос.Я все еще учусь jquery, поэтому, пожалуйста, потерпите меня и спасибо за ваше терпение.Я не мог найти ответ с помощью поиска.Я пишу довольно простой сайт, и мне нужна была форма, которая обрабатывает огромное количество довольно повторяющихся данных, поэтому таргетинг по отдельным идентификаторам слишком громоздкий.
Что я пытаюсь заставить его сделатьумножить значение каждого флажка (если флажок установлен) на следующий ввод -only- и добавить его к общей цене, отображаемой в поле ввода в конце формы.
Я получил егочтобы умножить, но у него была проблема, что если поля ввода были пустыми или имели значение 0, однако, если я установил значения каждого входа на 1 минимум, он также отправляет все значения этих на сервер, вызываячрезвычайно загроможденная форма потребления.(Мне нужно, чтобы он был читаемым при получении, в конце концов ...)
Так что я подумал, что для защиты от взлома полей ввода я буду кодировать его так, чтобы - если значение ввода больше 1, он умножит число входных данных на номер флажка и добавит это число к итогу - если нет, то просто добавит значение флажка к итогу, а не умножит что-либо.Таким образом, даже если они возятся с вводом, чтобы сделать его -1 или что-то еще, сумма по-прежнему правильно удерживается.
Я пытался сделать это, и это сломалось, и я не могу заставить его работать ... Любая помощь будет оценена, любое объяснение того, как туда добраться, также будет оценено.
Это мой jquery:
$(document).ready(function() {
$('input:checkbox').change(function() {
var price = 0;
$('input:checkbox:checked').each(function() {
if ((this).next('input').val() > 1) {
price += $(this).val() * $(this).next("input[name^='qty']").val();
} else {
price += parseInt($(this).val());
}
});
$("#price").val(price);
});
$('input[type="number"]').change(function() {
$('input:checkbox').trigger('change');
});
});
Это выборка соответствующего html, каждый флажок и входная пара вместе в своем собственном div, как это:
<div class="lineitem"><input type="checkbox" name="SN56803" value="96" /> <input type="number" name="qtySN56803" class="qty" min="-1" max="100"> </div>