如果用户名和密码不匹配则会显示警告,但是如果我点击确定表单已登录。可以告诉我如何避免它吗?谢谢。
<html>
<f:view>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h:form id="loginForm">
<h1><center>Login page</center> </h1>
<h:panelGrid columns="2">
<h:outputLabel value="UserName"></h:outputLabel>
<h:inputText id="name" value="#{user.name}"> </h:inputText>
<h:outputLabel value="Password"></h:outputLabel>
<h:inputSecret id="password" value="#{user.password}"></h:inputSecret>
</h:panelGrid>
<h:commandButton type="button" value="Login" action="logged" onclick="checkPassword(this.form)"></h:commandButton>
</h:form>
</body>
<script type="text/javascript">
<!--
function checkPassword(form) {
var passsword = form["loginForm:password"].value;
var username=form["loginForm:name"].value;
var confirmpassword ="welcome";
var confirmusername="admin";
if((passsword == confirmpassword)&&(username==confirmusername))
form.submit();
else
alert("Username and Password does not match");
}
-->
</script>
</f:view>
</html>
答案 0 :(得分:3)
... onclick="checkPassword(this.form); return false;" ...
答案 1 :(得分:1)
将功能结束更改为
else {
alert("Username and Password does not match");
return false;
}
答案 2 :(得分:0)
if((passsword == confirmpassword)&&(username==confirmusername))
form.submit();
最好不要那样做。如果在没有单击按钮的情况下提交表单(例如,在按下Enter时的各种情况下),则不会执行验证。
放置验证的最佳位置是form.onsubmit事件处理程序。例如:丢失源代码中的onclick并以编程方式将测试放在表单上:
var form= document.getElementById('loginForm');
form.onsubmit= function() {
var isok= this.elements['loginForm:username'].value=='admin' && this.elements['loginForm:password'].value=='welcome';
if (!isok)
alert('Wrong, fool!');
return isok;
}
您当然知道客户端密码检查毫无结果。