Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 3 Articles
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
[TIP] Creating Usable Forms
Princeton's Avatar
Princeton
Join Date: Nov 2001
Posts: 6,693

Joe Velez began developing for the web in 1998. He is an avid vBulletin user and volunteers his services as a vbulletin.org administrator. He currently spends his time maintaining and developing allnurses.com.

Vineland, NJ
Show Printable Version Email this Page Subscription
Princeton Princeton is offline 03-04-2006, 10:00 PM

Visiting sites on a daily basis, we are confronted with online applications (also known as "forms"). We see them everywhere and have become immune to the errors that they produce or lack of. To create a usable form, we must start thinking like the end-user (the visitor filling out the form).

SOMETHING TO THINK ABOUT
  • Don't you hate it when data is accepted without proper checks?
  • Don't you hate it when an error message comes up on a different page?
  • Don't you hate it when you are instructed to "Go Back" to fill a required field?
  • Don't you hate it when you have to guess what is a "required" field?
Do I have your attention? Good. Now, let me explain in detail before you start barking at me. :nervous:

Don't you hate it when a form is accepted without proper checks?

How sure are you that the information you entered is accurate? Did the system provide you with enough information to fill the form correctly? Did it do the proper checks to ensure that your data is in the correct format?

A form's input should be clearly defined. Some examples would be:
  1. DATES should be clearly defined as 00/00/0000 or 00-00-0000
  2. TELPHONE NUMBERS should clearly state that input is required in the following format ... xxx-xxx-xxxx
  3. WEB URL - Does the system require the "http", "www", or the full "http://www"? Will it accept "https"?
  4. Any text input should clearly state minimum and maximum number of characters if one exists.
A form's input should be checked while inputting data or upon "Submit". Validation can be done via client-side scripting (Javascript) or server-side (PHP, AJAX, etc).

All submitted information should be displayed to the end-user on the following page prior to acceptance; at the very least the information should be emailed to them. This will provide the end-user an opportunity to fix any errors if they exist.

Don't you hate it when an error message comes up on a different page?

Aaaarrrggghh!

I hate it when this happens. You submit the form and you are notified that an error exists. What's worst is that you may have to guess where the error is located OR you may have to redo the form in its entirety. Yep, this is the part where I usually pull my hair or go to another site.

Don't you hate it when you are instructed to "Go Back" to fill a required field?

What's so bad about this? This is one additional step that could have been avoided. Just think of how much time you could have saved if you knew firsthand what was 'required'!
  1. Errors should appear on same page of form.
  2. Errors should be clearly defined. (ie. "Password only consists of 0-9; a-z; 10) characters long"
  3. Errors should be clearly visible. (ie. Bold red color, error icon)
  4. The best form of validating data is a combination of server-side and JavaScript (alert). NOTE: Server-side validation should always be done.
Don't you hate it when you have to guess what is a "required" field?

Not long ago, I was at a site that gave me a "required field" error. Nothing wrong with that but, what "required" field did I miss? There was no mention of a "required field"!

Nevertheless, I did what everyone does when they are presented with a form error. I went back and filled every input box.

Aaaarrrggghh!

Now I'm getting an "address field is to long" error. There are two address fields and I have no clue as to which one is formatted wrong!

A simple asterisk *, color, or icon could have saved me the aggravation. It also would have increased the sales on that site if I was able to finish the application process.

In short...
it takes a little bit more effort to create a "usable" form; but, it's worth the time.

A usable form will:
  1. increase turnovers.
  2. increase sales.
  3. keep visitors happy.

Any typos/grammer mistakes please private message me .. thank you.
Reply With Quote
  #2  
Old 03-06-2006, 12:16 AM
rossco_2005's Avatar
rossco_2005 rossco_2005 is offline
 
Join Date: Apr 2005
Location: Canada
Posts: 184
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is some good info, I've read through your tips and realize some things I could improve with a couple of the hacks on my forum. Thanks
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:25 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06114 seconds
  • Memory Usage 2,203KB
  • Queries Executed 17 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (1)post_thanks_box_bit
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (2)post_thanks_postbit_info
  • (1)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete