我正在尝试在从隐藏字段重定向页面之前显示错误消息。我没有成功做到这一点。
以下是代码 -
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>
登录成功后,该页面会重定向到另一个正常工作
的网站如果登录失败,则应重定向到提及returnfailure值的页面。 这有效,但我无法在重定向之前显示错误消息。我怎么能用隐藏的字段做到这一点。
答案 0 :(得分:0)
更新以下代码
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');
window.location.href = document.getElementById("returnfailure").value;
}
}
答案 1 :(得分:0)
登录成功或失败似乎由“http://www.test.com/login.jsf”决定。 处理重定向的逻辑必须在该文件中。
所以你可以做的是:
如果登录失败 - &gt;重定向到登录表单页面(上面提到的页面),其中包含一个额外的请求参数,说明登录失败。 (此代码应位于“http://www.test.com/login.jsf”)
在“登录”页面中使用该请求参数值,以显示或隐藏错误消息。
如果您显示错误,请重定向到“returnfailure”隐藏字段中提到的页面