< Day Day Up > |
Recipe 5.5 Setting Up a Submit-Once-Only ButtonProblemYou want to keep people from clicking the Submit button more than once. SolutionFirst 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="$7.95" /> <br /> (includes tax, s+h extra)<br /> <input type="submit" name="submit" value="submit" class="buttonSubmit" /> </div> </form> DiscussionThe 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 AlsoJavaScript and DHTML Cookbook (O'Reilly) for more recipes that combine JavaScript and CSS. |
< Day Day Up > |