Javascript 如何区分新加载的表单和重定向后加载的相同表单
我有一个带有以下字段的登录表单- 用户名 暗语 返回故障 直接登录 当我单击submit时,所有字段都会附加到URL中,它会命中一个JSP文件。 此后,, 场景1:如果登录成功,将重定向到成功页面。这很有效 场景2:如果登录失败,将重定向到作为参数传递的返回失败URL值。重定向时,它不会给出任何响应。 问题:- 1.如何区分加载新表单和重定向后加载的表单? 2.在将页面重定向到returnfailure value之前,而不是在新加载表单期间,我必须显示无效用户名和密码的警告。我如何才能做到这一点Javascript 如何区分新加载的表单和重定向后加载的相同表单,javascript,html,forms,redirect,Javascript,Html,Forms,Redirect,我有一个带有以下字段的登录表单- 用户名 暗语 返回故障 直接登录 当我单击submit时,所有字段都会附加到URL中,它会命中一个JSP文件。 此后,, 场景1:如果登录成功,将重定向到成功页面。这很有效 场景2:如果登录失败,将重定向到作为参数传递的返回失败URL值。重定向时,它不会给出任何响应。 问题:- 1.如何区分加载新表单和重定向后加载的表单? 2.在将页面重定向到returnfailure value之前,而不是在新加载表单期间,我必须显示无效用户名和密码的警告。我如何才能做到这一
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>
TJ在正确的轨道上。通常情况下,您希望服务器能够在页面第一次加载时将表单内容以及错误传递给客户端。如果您想完全在客户端完成这项工作,也许可以用表单提交代替javascript ajax请求。然后javascript可以解释服务器响应,然后用错误消息填充页面或重定向到成功页面 您是否使用任何服务器端语言?@TJ不,我不使用没有服务器端的语言-是否可以获取重定向元数据?否则,使用cookie。或者最好在的行中隐藏一个控件,并在ValidateForm中设置它。我想我只会在成功登录的情况下重定向。否则,显示警告并保留表单数据。如果您想跟踪登录尝试,那么在服务器端执行此操作会更加安全,一旦发生这种情况,服务器就会发送“登录次数过多”错误。