DLE-UniForm icon indicating copy to clipboard operation
DLE-UniForm copied to clipboard

не работает проверка чекбокса версия модуля 1.4 dle 10.4

Open tralalon opened this issue 7 years ago • 5 comments

Нужно сделать обязательный чекбокс в инлайн форме - типа согалсен с договором. Если не ставлю галочку то ошибка выходит в таком виде

[uf_error_checkbox1]
You must to accept TERMS & CONDITIONS
[/uf_error_checkbox1] 

Никак не могу сделать так чтобы в ошибке н ебыло этих тегов а только текст те выводит теги на страницу. Если галочку ставлю то все в порядке.

В form где ошибки пишу так

[uf_error_checkbox1]
<li>You must to accept TERMS & CONDITIONS</li>
[/uf_error_checkbox1]

В самой форме вывожу так:

<input type="checkbox" 
            name="checkbox1" value="oneCheck"
[uf_checkbox_checkbox1_oneCheck]checked[/uf_checkbox_checkbox1_oneCheck]
> I agree with the Terms & Conditions</a>

конфиг:

required = email,name,checkbox1
...
checkboxFields = checkbox1

@pafnuty не забудь посмотреть этот тиккет :ticket:

tralalon avatar Apr 07 '17 12:04 tralalon

еще хотел добавить, сообщение об ошибке с лишними тегами выводится только после заполнения первого обязательного поля, и фома всеравно может быть отправлена

tralalon avatar Apr 07 '17 12:04 tralalon

а решение где посмотреть можно?

vad-glove avatar Mar 13 '18 07:03 vad-glove

@vad-glove Этот баг в статусе 'open', пока решения нет.

pafnuty avatar Mar 13 '18 08:03 pafnuty

понял - по крайней мере лучшее решение вышло через html <input type="checkbox" required />

Можно узнать а формат даты задать для передачи на почту можно? что бы приходило к примеру 12/12/2018 сорри что не в тему

vad-glove avatar Mar 13 '18 11:03 vad-glove

Может пригодиться вариант с оповещением: Всем обязательным чекбоксам добавляем data-uf-checkbox-required="Тут текст предупреждения"

Например: <input type="checkbox" name="rules" data-uf-checkbox-required="Необходимо согласиться с правилами">

В uniform.js после:

	// ajax-отправка формы + эффекты
	.on('submit', '[data-uf-form]', function () {

Вставляем: if (!verifyСheckboxInForm($(this))) return false;

Перед или после этой функции:

// Функция, выполняемая перед отправкой формы
function ufStart(formData, jqForm) {
	laddaLoad = jqForm.find('.ladda-button').ladda();
	laddaLoad.ladda('start');

	return true;
}

Вставляем:

// Проверка обязательного checkbox
function verifyСheckboxInForm(form) {
	let checkboxArr = form.find('[data-uf-checkbox-required]:not(:checked)');
	if (checkboxArr.length > 0) {
		alert(checkboxArr.eq(0).attr("data-uf-checkbox-required"));
		return false;
	}
	return true;
}

Теперь, если чекбокс не выбран, то форма не будет отправляться и будет выскакивать alert с текстом из первого не выбранного обязательного чекбокса. Вместо alert можно подцепить модалку к примеру colorbox ну или какой-нибудь notify

get-web avatar Jan 12 '19 18:01 get-web