2017-07-15 98 views
0

我的html:如何在html中調用js函數然後執行servlet?

<body> 
 
<div class="cover"> 
 
    <form name="registform" action="doRegist" method="post" > 
 
     <input type="submit" value="regist" onclick="formValidation()"> 
 
    </form> 
 
</div> 
 

 
<script src="resources/js/validation.js"></script> 
 
</body>

我想JS要首先執行功能 「formValidation」,然後servlet中 「doRegist」,但我PROGRAMM忽略js函數。請幫助

更新 JS:

function formValidation() { 
 
\t var login = document.registform.userName; 
 
\t if(validateLogin(login)) { 
 
\t 
 
\t } 
 
\t return false; 
 
} 
 
function validateLogin(login) { 
 
\t var loginformat = /^[a-z]+([_]?[a-z0-9]+)$/i; 
 
\t var loginlen = login.value.length; 
 
\t if(loginlen < 5) { 
 
\t \t alert("You have entered an invalid login!"); 
 
\t \t document.registform.userid.focus(); 
 
\t \t return false; 
 
\t } 
 
\t if(login.value.match(loginformat)) { 
 
\t \t document.registform.userid.focus(); 
 
\t \t return true; 
 
\t } else { 
 
\t \t alert("You have entered an invalid login!"); 
 
\t \t document.registform.userid.focus(); 
 
\t \t return false; 
 
\t } 
 
}

+0

你的formValidation是做什麼的? –

+0

當我分別運行我的文件,而不是在服務器上,然後js函數工作 – Kadoline

回答

0

既然你有你的形式定義的動作,瀏覽器會提交表單。如果您需要取消該項目,則需要在傳遞給formValidation的事件時致電preventDefault()。要做到這一點,你可以打電話onclick="formValidation(event)"這樣的功能,你可以這樣做: function formValidation(event) { event.preventDefault() ... } 這樣你可以取消事件,你的表單不會被冒充。 如果您以後決定提交(如果驗證通過),您必須手動執行此操作,例如document.registform.submit()

N.B.請記住,您只是在點擊按鈕時啓動驗證過程,而您的表單可以以不同的方式提交,例如在一個文本輸入中按下回車鍵。我建議使用onsubmit方法。

相關問題