0

我想知道当 JavaScript 表单验证返回 true 时,如何将表单值从 jsp 页面中的 html 传递到 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 时。

4

2 回答 2

0

验证完成后,您可能希望将其<form>实际内容发布到 URL:

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

然后你的 Java 类应该被映射来处理 POST 请求/login

于 2012-09-26T18:19:15.017 回答
0

如果您希望您的表单提交行为取决于您自己的功能,您必须使用:

onsubmit="return yourfunction()"

当您使用 onsubmit="yourfunction" 时,它不会影响默认行为,因为您的函数返回一个值,但在这种情况下 onsubmit 并不关心它:)

所以你的代码应该是这样的:

<form id="loginForm" onsubmit="return loginValidation()>
于 2012-09-26T18:07:47.243 回答