Recipe 5.5 Setting Up a Submit-Once-Only Button

‚  < ‚  Day Day Up ‚  > ‚  

Problem

You want to keep people from clicking the Submit button more than once.

Solution

First create a class for keeping the button from being displayed:

 .buttonSubmitHide {  display: none; } 

Then use the following JavaScript programmed to switch styles by class selectors:

 <script language="JavaScript" type="text/javascript"> function classChange(styleChange,item) {  item.className = styleChange; } </script> 

Now trigger the function by using an onsubmit event to remove the Submit button from the web document:

 <h2>Order Confirmation</h2> <form action="login.php" method="post"  onsubmit="classChange('buttonSubmitHide',submit);  return true">  <div align="center">   <p>Are you sure you want to purchase 12 cans of soda over the  Web?</p>   <label for="uname">Final Price:</label>   <input type="text" name="uname" id="uname" value=".95" /> <br />    (includes tax, s+h extra)<br />   <input type="submit" name="submit" value="submit"  class="buttonSubmit" />  </div> </form> 

Discussion

The JavaScript function in the Solution triggers a change in which a style is applied to the element. You must use the form's onsubmit event to execute the function so that the form's action will still be executed. If the function were triggered with an onclick event on the Submit button, some browsers would execute only the class-changing function. Then, because the button is no longer visible, the user would not be able to trigger the form.

See Also

JavaScript and DHTML Cookbook (O'Reilly) for more recipes that combine JavaScript and CSS.

‚  < ‚  Day Day Up ‚  > ‚  


CSS Cookbook
CSS Cookbook, 3rd Edition (Animal Guide)
ISBN: 059615593X
EAN: 2147483647
Year: 2004
Pages: 154

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net