Комментарии

Запрет действий по предъявлению или сохранению формы
( 0 Голосов )

Как пояснялось ранее, проверка достоверности средствами JavaScript действует локально в веб-браузере. Она не требует от пользователя щелкать на кнопке Submit или Save, чтобы проверить достоверность данных, введенных в полях формы. Если некоторые данные, введенные в форме, оказываются недействительными в результате проверки их достоверности средствами JavaScript, то может возникнуть потребность запретить действие по предъявлению формы до тех пор, пока во всех ее полях не окажутся действительные данные.

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

В базовых программах Joomla функция предъявления формы, как правило, запрещается, когда обнаруживаются ошибки проверки достоверности. И делается это двумя разными способами.

Если в компоновке формы имеется элемент разметки button с атрибутами type="submit" и, то проверка достоверности данных будет автоматически выполнена во всей форме, и действие этой кнопки по предъявлению формы будет запрещено, если в данной форме окажутся какие-нибудь недействительные данные.

Если же в компоновке формы отсутствует кнопка для ее предъявления, то можно создать функцию JavaScript для перехвата действия по предъявлению формы, предъявив ее только в том случае, если все данные в ней окажутся действительными. Именно так и происходит на экранах из административной части веб-сайта, где имеются панели инструментов с кнопками для выполнения различных задач.

Пример реализации второго способа можно обнаружить в файле компоновки administrator/components/com_users/views/user/tmpl/edit.php экрана User Manager: Edit (Диспетчер пользователей: Правка). В частности, в этом файле имеется следующий фрагмент кода:

<script  type="text/javascript">
Joomla.submitbutton =  function(task) {
if (task == 'user.cancel' || document.formvalidator.isValid(document.id('user-form')))   {
Joomla.submitform(task, document.getElementById('user-form')); } } </script>

В этом фрагменте кода создается функция JavaScript под названием Joomla. submitbutton. Эта функция вызывается, когда пользователь щелкает кнопкой мыши на пиктограмме любой кнопки, доступной на панели инструментов, например Save, Cancel или Save & Close. Если выбрана задача user. cancel или форма окажется достоверной, она предъявляется при вызове функции Joomla.submitform, определенной в файле media/system/js/core.js. В противном случае ничего не происходит, в следовательно, форма не предъявляется. Таким образом, пользователь должен исправить любые ошибки, допущенные при вводе данных в форме, прежде чем ее можно будет предъявить.

Это еще один характерный пример ненавязчивости JavaScript. Приложение не полагается на проверку достоверности данных в полях формы только средствами JavaScript. Для этой цели в нем имеются другие методы, в том числе из классов типа JFormRule и JTable. А функции JavaScript лишь улучшают пользовательский интерфейс, обеспечивая немедленную реакцию на ввод пользователем недействительных данных. Если же функции JavaScript запрещены, форма будет действовать по-прежнему, но с менее удобным для пользователя интерфейсом.

Этот вид поведения просто загружает интегрированную среду MooTools из дескриптора script в заголовке страницы. Оно служит для ввода специального кода JavaScript, опирающегося на MooTools. Это поведение никак не связано ни с одной из функций JavaScript, а в коде оно вызывается следующим образом:

JHtml:: ('behavior.framework');

Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости
Добавить комментарий


Защитный код