Есть компонент формы на который я повесил функцию
<?php
$form['submitted']['tel']['#element_validate'][] = '_custorm_validation_form_validate';
?>
в самой функции написал следующее
<?php
$subject = $element['#value'];
if($element['#webform_component']['form_key'] == 'tel'){
$pattern = '/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/';
$result = preg_match($pattern, $subject);
if(!$result){
form_error($element, 'Поле Телефон заполненно некорректно');
};
}
?>
при этом сообщение всплывает над формой.
Как мне создать произвольные блок в форме в который я смогу поместить это сообщение?
пробовал вот так:
<?php
$form['submitted']['tel']['#webform_component']['#suffix'] = 111;
?>
но ничего не появилось
Комментарии
http://www.angarsky.ru/drupal/ispolzovanie-ajax-s-drupal-forms-api.html
не совсем понятно как добавить дополнительный элемент в форму после того как я получаю ошибку. В статьи не описывается функция валидации и не показано как добавить элемент если форма не прошла проверку.
Если вы считаете что данный материал отвечает на моей вопрос, то хотелось бы бы увидеть решение конкретно моей задачи.
Кто бы мне мои задачи поделал бы, тут, да еще и бесплатно.
ajax-ом
Кстати, да.
Если это просто сообщение и не требует дополнительной логики.
То проще либо через jQuery туда добавиться, либо аяксом.
это веб-форма она сейчас работает на ajax. Соответственно моя функция тоже должна выполняться.
Ведь сначала идет запрос на сервер, после этого этого срабатывает мой хук и генерируется обновленная форма. Разве нет?
хук у меня рабочий, так мое сообщение об ошибки которое я добавил в код всплывает, если условие не выполнено. Поэтому и задал сюда вопрос, как добавить не только произвольное сообщение об ошибке но и дооплнительный элемент.
почему именно ajax? а не с помощью форм api?
Потому что, вы сначала спрашиваете одно, а потом пишите, что вам нужно совсем другое
ну как же другое? все то же: я спросил как добавить новый элемент в форму после того как появляется сообщение об ошибке.
Форма у меня и так работает на ajax. мой вопрос не изменился, через jquery я могу сделать такую вещь, но думал что это же можно сделать и с помощью php и форм api.
по ссылке все расписано, если не получается, за 5 тыр могу сделать