這段代碼在<form>中有οnsubmit="return on_submit()",如果 onsubmit ()返回 fasle,表單的元素就不會提交,即action="regist.php"不會執行,如果該函數返回其他值或什么都沒有返回,則表單會被提交,即執行action="regist.jsp"。也就是說,onsubmit是用來驗證輸入信息,而action是提供一個表單完成被提交的路徑,當onsubmit為false時表單不會提交。
<form method="post" name="form" action="register.php" onSubmit="return beforeSubmit(this);">
<script type="text/javascript"> function beforeSubmit(form){ ...
<fieldset> <legend>用戶注冊</legend> <form method="post" name="form" action="user.do?method=register" onSubmit="return beforeSubmit(this);"> <table border="1" width="100%" cellspacing="0" cellpadding="0"> <tr><td><label>用戶名:<input type="text" name="username" value=""></label></td></tr> <tr><td><label>密 碼:<input type="password" name="password" value=""></label></td></tr> <tr><td><label>重復密碼:<input type="password" name="password2" value=""></label></td></tr> <tr><td><input value="注冊" type="submit"> <input type="reset" value="重置"></td></tr> </table> </form> </fieldset> <script type="text/javascript"> function beforeSubmit(form){ if(form.username.value==''){ alert('用戶名不能為空!'); form.username.focus(); return false; } if(form.password.value==''){ alert('密碼不能為空!'); form.password.focus(); return false; } if(form.password.value.length<6){ alert('密碼至少為6位,請重新輸入!'); form.password.focus(); return false; } if(form.password.value!=form.password2.value) { alert('你兩次輸入的密碼不一致,請重新輸入!'); form.password2.focus(); return false; } return true; } </script>