我正在使用JSF 2.1编写我的jsp页面。我在DIV标签中包含了一个h:inputText和一个h:commandButton,当点击忘记密码DIV时它们会出现。我想在客户端验证输入字段的有效电子邮件地址,因此我使用了f:validateRegex和“validatorMessage”,但当我提供错误的电子邮件地址(例如“123gmail.com”)或提交时未输入任何文本时,它似乎仍无法正常工作。所有它做的就是重新加载页面。能否有人帮助我...
以下是我编辑过的JSP页面代码,以供参考
<!DOCTYPE html>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@page import="com.fla.mbeans.ForgotPass"%>
<html>
<head>
</head>
<body>
<div style="left: 44%;top: 6%;width: 250px; position: relative;padding:20px;cursor: pointer" onclick="copytext()">
<span id="fstyle"><ul>Forgot Password?</ul></span>
</div>
<div id="fgpass" >
<div id="newpass">
<div style="position: absolute;top: 10%;left: 10%;">
<center><h2>PASSWORD RECOVERY</h2></center>
<h4> Enter Your Registered</h4>
<h4>E-Mail Address :</h4>
<f:view>
<h:form>
<center>
<h:inputText id="cmailid" required="true" value="#{forgotPass.mailid}" validatorMessage="Invalid email">
<f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]"/>
</h:inputText>
<h:commandButton value="Submit" action="#{forgotPass.fpass}">
</h:commandButton>
</center>
</div>
</div>
</h:form>
</div>
</body>
</f:view>
</html>
我的CSS
#fgpass {
position: absolute;
left: 65%;
top: 4%;
border-color: #009900;
border-width: 3px;
border-radius: inherit;
z-index: 800;
}
#newpass{
position: absolute;
z-index: 1000;
height:160px;
width: 250px;
color: midnightblue;
visibility: hidden;
background-color: lavender;
-moz-border-radius: 8px;
border-radius: 8px;
border-width: 3px;
border-color:#444;
}
我的js
function copytext()
{
var unhide=document.getElementById('newpass');
src=document.getElementById('mailid');
unhide.style.visibility='visible';
dest=document.getElementById('cmailid');
dest.value = src.value;
}
有人可以告诉我为什么它不起作用或者其他的方法在客户端进行验证吗?...我对这个很新,请帮忙(谢谢)
_@9.aB%
并不是一个合法的电子邮件地址,但它能通过这个正则表达式。请尝试:[a-zA-Z0-9]([\w\.-]*[a-zA-Z0-9]+)+@[a-zA-Z0-9]([a-zA-Z0-9\.-]*[a-zA-Z0-9]+)+\.[a-zA-Z]{2,9}
或者添加^$
或\b
。 - Suamere