我有一个包含以下字段的登录表单 -
名
密码
退货失败
直接登录
当我点击提交时,所有字段都附加在URL中,并且它会访问JSP文件
在此之后,
场景1:如果登录成功,则会将其重定向到成功页面。这工作
场景2:如果登录失败,则会将其重定向到作为参数传递的返回失败URL值。重定向时不会给出任何响应
问题 -
1.如何区分加载新表单和重定向后加载的表单?
2.在将页面重定向到returnfailure值之前,我必须显示无效用户名和密码的警告,而不是在重新加载表单时。我该怎么办?
Below is the code -
**HTML**
<form name="formlogin" method="get" onsubmit="return ValidateForm();" class="form-wrapper">
<table>
<tr>
<td>
<label class="service-lable" style="font-family:Verdana;">Username</label>
</td>
<td>
<input type="email" name="username" maxlength="30" size="30" class="required"/> <br/><br/>
</td>
</tr>
<tr>
<td>
<label class="service-lable" style="font-family:Verdana;">Password</label>
</td>
<td>
<input type="password" name="password"maxlength="30" size="30" class="required"/> <br/><br/>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="directlogin" id="directlogin" value="1"/>
</td>
<td>
<input type="hidden" name="returnfailure" id="returnfailure" value="http://www.google.com"/>
</td>
</tr>
<tr>
<td>
<input type="submit" name="login" value="" class="button_add" />
</td>
</tr>
</table>
</form>
**Javascript**
<script>
function emailcheck(str) {
var at="@";
var dot=".";
var lat=str.indexOf(at);
var lstr=str.length;
var ldot=str.indexOf(dot);
if (lat ==-1 || lat == 0 || lat == lstr){
return false;
}
if (ldot==-1 || ldot==0 || ldot == lstr){
return false;
}
if (str.indexOf(at,(lat+1))!=-1){
return false;
}
if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
return false;
}
if (str.indexOf(dot,(lat+2))==-1){
return false;
}
if (str.indexOf(" ")!=-1){
return false;
}
return true;
}
function ValidateForm(){
var emailID=document.forms["formlogin"].username;
var username=document.forms["formlogin"].username.value;
username=username.toLowerCase();
var password=document.forms["formlogin"].password.value;
if ((emailID.value==null)||(emailID.value == "")){
// alert("Please Enter your Email ID");
emailID.focus();
return false;
}
if (emailcheck(emailID.value)== true){
document.forms["formlogin"].action = "http://www.test.com/login.jsf";
return true;
} else {
alert ('Please enter the valid Email ID');
return false ;
}
}
</script>
答案 0 :(得分:0)
TJ走在正确的轨道上。通常在这里,您希望服务器能够在页面加载时(即使是第一次)将表单内容和错误传递给客户端。如果你想完全在客户端这样做,也许你可以让表单提交取代javascript ajax请求。然后,javascript可以解释服务器响应,然后使用错误消息填充页面或重定向到成功页面。