2012-09-26 39 views
0

當JavaScript表單驗證返回true時,我正在查看如何將表單值從jsp頁面中的html傳遞到Java類。當JS驗證返回true時,將表單值傳遞給java類

HTML代碼:

<form id="loginForm" onsubmit="return loginValidation()> 
<p class="error" id="liusrError"></p> 
<label for="usr">Username :</label> 
<br /> 
<input type="text" name="liusr" id="liusr"> 
<br /> 
<p class="error" id="lipwdError"></p> 
<label for="pwd">Password :</label> <br /> 
<input type="password" name="lipwd" id="lipwd"> 
<br /> 
<a id="fgtpwd" href="url">Forgot your password?</a> 
<br /> 
<input type="submit" value="Log In" id="logIn"> 
</form> 

中的JavaScript:

function loginValidation(){ 
var pwd = document.getElementById("lipwd").value; 
var usr = document.getElementById("liusr").value; 
var error = false; 

if(pwd == null || pwd == ""){ 
    document.getElementById("lipwdError").innerHTML = "Please enter a valid password"; 
    error = true; 
}else{ 
    document.getElementById("lipwdError").innerHTML = " "; 
} 

if(usr == null || usr==""){ 
    document.getElementById("liusrError").innerHTML = "Please enter a valid username"; 
    error = true; 
}else{ 
    document.getElementById("liusrError").innerHTML = " "; 
} 

return error; 
} 

編輯:

我想知道如何使用這個<% if (request.getParameter("liusr") != null) { %>在我的表單中輸入的值發送到我的Java只有在JavaScript函數loginValidation返回true時才能使用該類。

回答

0

你可能想有你:不過的onsubmit不會在這種情況下:)

所以,你的代碼應該是這樣的呵護它真的發表了它的內容到一個URL時,驗證完成:

<form id="loginForm" onsubmit="return loginValidation()" 
    method="POST" action="/login"> 

然後你的Java類應該映射到處理POST請求/login

+0

如果在我的Java類中,我想驗證用戶名和密碼是否正確,那麼它還是可行的。如果詳細信息不正確,可以使用仍然輸入的用戶輸入的值向相同的登錄表單輸出錯誤。 – Colin747

+0

只要'onsubmit'返回true,'form'的'method'和'action'屬性就會告訴瀏覽器將表單內容提交給該URL。你可以在Java類中做任何你想做的事情。事實上,你應該驗證那些相同的字段是非空的/正確的,因爲你的一些用戶可能會禁用Javascript。 –

0

如果你希望你的表單提交行爲,取決於你自己的函數,你必須使用:

onsubmit="return yourfunction()" 

當您使用的onsubmit =「yourFunction中」不影響默認的行爲,因爲你的函數返回一個值,

<form id="loginForm" onsubmit="return loginValidation()> 
+0

感謝但不是我正在尋找,請參閱編輯。 – Colin747