Задать вопрос

Как сделать отдельную проверку на каждый checkbox?

Всем доброго дня, такая проблема. На старнице 2 формы дело в том что если убрать хоть один чекбокс то не одна форма не работает, как сделать так чтоб чекбокс отвечал каждый за свою форму. Проверку сделал раздельную но это не решило проблему
$(".form_submit").click(function () {

		var btnid = $(this).data("id");

		var name = $("#feedback_form_name" + btnid).val();
		var phone = $("#feedback_form_phone" + btnid).val();
		var email = $("#feedback_form_email" + btnid).val();
		var nameFriend = $("#feedback_form_nameFriend" + btnid).val();
		var phoneFriend = $("#feedback_form_phoneFriend" + btnid).val();

		var summ = $("#feedback_form_summa" + btnid + " option:selected").text();
		var day = $("#feedback_form_day" + btnid + " option:selected").text();


		var mess = $("#feedback_form_mess" + btnid).val();
		var url = $("#feedback_form_url" + btnid).val();
		// Получение значения checkbox
		var isChecked = $("#form-check").is(":checked");
		var isChecked2 = $("#form-check__quest").is(":checked");
		// Проверка значения checkbox
		if (!isChecked) {
			// Вывод сообщения об ошибке
			alert("Пожалуйста, примите политику конфиденциальности.");
			return; // Прерываем выполнение функции
		}
		// Проверка значения checkbox
		if (!isChecked2) {
			// Вывод сообщения об ошибке
			alert("Пожалуйста, примите политику конфиденциальности.");
			return; // Прерываем выполнение функции
		}
		if (name == "" || phone == "" || nameFriend == "" || phoneFriend == "") {

			$("#feedback_form_danger" + btnid).css("display", "");

		}
		else {

			$("#feedback_form_danger" + btnid).css("display", "none");
			$("#feedback_form_info" + btnid).css("display", "");

			$.ajax({
				type: "POST",
				url: "/local/components/main/send.form/templates/.default/ajax.php",
				data: { NAME: name, PHONE: phone, EMAIL: email, MESS: mess, SUM: summ, DAY: day, URL: url, NAMEFRIEND: nameFriend, PHONEFRIEND: phoneFriend },
				success: function (data) {

					$("#feedback_form_success" + btnid).css("display", "");

					$("#feedback_form_success" + btnid).css("display", "");
					$("#feedback_form_info" + btnid).css("display", "none");

					$("#feedback_form_name" + btnid).val("");
					$("#feedback_form_phone" + btnid).val("");
					$("#feedback_form_email" + btnid).val("");
					$("#feedback_form_mess" + btnid).val("");
					$("#feedback_form_url" + btnid).val("");
					$("#feedback_form_nameFriend" + btnid).val("");
					$("#feedback_form_phoneFriend" + btnid).val("");

					setTimeout(function () { $('#pModal').modal('hide') }, 1700);


				}
			});

		}

	});
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Средний 4 комментария
Решения вопроса 1
Stalker_RED
@Stalker_RED
Зачем все так сложно?
Зачем писать проверку на пустоту, если есть required?
Зачем самому собирать данные со всех полей, если есть $(form).serialize() ?
Зачем добавлять к каждому полю id, если можно просто получать данные из текущей формы, а не по всей странице?
У вас 90% кода можно просто выбросить.
https://jsfiddle.net/ad86g4vu/1

с подсветкой полей
https://jsfiddle.net/ad86g4vu/2
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Не видя вёрстки, сложно дать ответ. Но мне кажется, проблема в этом:
var isChecked = $("#form-check").is(":checked");
var isChecked2 = $("#form-check__quest").is(":checked");

У Вас в остальных полях присутствует btnid , а тут нет.

P.S. Имхо, подход чудовищный. Надеюсь, Вы это со временем поймёте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы