Передо мной стоит небольшая задача, которая завела меня в тупик:
1. Есть три поля ФИО, которые выдают ошибку, в случае незаполненности.
2. Если заполнить хотя бы одно поле - ошибка пропадает, но остальные поля могут быть пустыми.
3. Нужно, чтобы всегда была ошибка, при любом незаполненном поле.
Для решения задачи - создал три невидимых поля ФИО, которые заполняются параллельно с вводом данных в основные поля. Далее следует повесить обработчик на каждое невидимое поле, чтобы он выдавал ошибку, при не заполненном поле...Как это сделать - не знаю.
Код, который выводит ошибку (насколько я понимаю)
$(document).ready(function(){
BX.addCustomEvent('onAjaxSuccess', function(){ // при обновлении через ajax выполнить функцию
$('#ORDER_PROP_3').mask("+7 (999) 999-99-99");
// разбиение поля ФИО на 3 инпута
$('[name="ORDER_PROP_1"]').css('display', 'none');
$('.new_fio_input').focusout(function() {
$('[name="ORDER_PROP_1"]').val($('.new_fio_input[name="NAME"]').val() + ' ' + $('.new_fio_input[name="LASTNAME"]').val() + ' ' + $('.new_fio_input[name="MIDNAME"]').val());
});
});
});
// js error выводящий ошибку
function submitForm(val)
{
if(val != 'Y')
BX('confirmorder').value = 'N';
var orderForm = BX('ORDER_FORM');
BX.ajax.submitComponentForm(orderForm, 'order_form_content', true);
BX.submit(orderForm);
// error
setTimeout(function() {
clearInterval(interval);
}, 4000);
return true;
}
function SetContact(profileId)
{
BX("profile_change").value = "Y";
submitForm();
setTimeout(function() {
$('#ORDER_PROP_3').val('');
}, 3000);
}
Основные три input поля
if($arProperties["FIELD_NAME"] == 'ORDER_PROP_1'){
?>
<input class="new_fio_input" id="name" name="NAME" type="text" maxlength="250" placeholder="Фамилия">
<input class="new_fio_input" id="surname" name="LASTNAME" type="text" maxlength="250" placeholder="Имя">
<input class="new_fio_input" id="patronymic" name="MIDNAME" type="text" maxlength="250" placeholder="Отчество">
<input type="text" maxlength="250" size="<?=$arProperties["SIZE1"]?>" value="<?=(stripos($arProperties["VALUE"], 'Без имени') === false ? $arProperties["VALUE"] : '')?>" name="<?=$arProperties["FIELD_NAME"]?>" id="<?=$arProperties["FIELD_NAME"]?>">
<?
}else{
?>
<input type="text" maxlength="250" size="<?=$arProperties["SIZE1"]?>" value="<?=(stripos($arProperties["VALUE"], 'Без имени') === false ? $arProperties["VALUE"] : '')?>" name="<?=$arProperties["FIELD_NAME"]?>" id="<?=$arProperties["FIELD_NAME"]?>">
<?
}
Спрятанные поля:
<input type="text" class="hidden__name">
<input type="text" class="hidden__surname">
<input type="text" class="hidden__patronymic">