Практика разработки Web-страниц

         

Отправляя форму, люди оставляют поля незаполнеными


Многие люди не любят печатать, они предпочтут оставить поле незаполненым. Если эта информация вам очень нужна, вам придется предоставить посетителям некоторые удобства. Один из способов: поддерживать величины по умолчанию и отмечать поля, обязательные для заполнения. Другой путь – добавить сценарий проверки на корректность (validation script) – JavaScript, запускаемый при отправке формы и проверяющий содержимое всех необходимых полей. Если такой сценарий обнаруживает незаполненные поля, он выводит сообщение и не отправляет форму. Наконец, вы можете проверять информацию формы при ее попадании на серверный сценарий или программу уже после отправки, и выводить ошибку или возвращать форму.

Если посетители отправляют форму без необходимой информации, сделайте следующее.

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


    Сообщите посетителю, какая информация вам нужна

  2. Чтобы минимизировать количество текста, которое придется набить вашим посетителям, используйте кнопки выбора, флажки и списки там, где это возможно. Например, вместо того чтобы просить посетителей написать причину их интереса, сделайте список, из которого они могли бы выбрать. Поставьте выбор по умолчанию для кнопок выбора или флажков, используйте атрибут checked в тэге <INPUT>; для списков используйте атрибут selected в тэге <OPTION>.
  3. Чтобы поля с ключевой информацией, такой как имя посетителя, не оставались незаполнеными, используйте на странице сценарий проверки на корректность. Например, следующая функция JavaScript проверяет заполненость полей realname и email. Если поля пустые, сценарий выводит сообщение от броузера и указывает на незаполненные поля.


    Сценарий может проверить правильность величин перед отправкой формы на сервер

    <script language="JavaScript"> <!-- function validate(form){ //Check for name and e-mail entries. if (form.realname.value ==""){ alert("Please type your name."); form.realname.focus(); return false;//Don’t submit the form } else if (form.email.value ==""){ alert("Please type your e-mail address."); form.email.focus(); return false; //Don’t submit the form } return true; //Required fields are there -submit the form } //--> </script>

    Чтобы использовать этот сценарий, вставьте код в раздел <HEAD> вашей страницы. Затем присоедините функцию к событию onSubmit вашей формы как указано ниже, тогда функция будет выполняться броузером прежде, чем информация будет отправлена сетевому сценарию. (Утверждение return указывает, что форма не отправится, если сценарий обнаружит пропущенную информацию.)

    <form action="formmail.cgi"method=POST onSubmit="return validate(this)">

    Другие идеи насчет сценариев проверки на корректность см. в сети или в Приложении C.

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



Содержание раздела