下面是我的JSP页面中的部分代码,大概意思是因为我对用户提交的时间格式有限制,所以在submit提交时要先验证时间格式的合法性,如果不合法,则弹出对话框提示。
但我碰到的问题是:时间格式错误时,提示对话框也弹出来了,但是点击对话框上面的“确定”后,还是会触发提交动作。而我想要的是弹出错误提示后,点击“确定”,还是停留在原来页面,让用户可以修改时间格式。//验证是否为日期
function validator(){
if(isDate(document.all.demo1.value.trim())==false){
document.all.demo1.select();
return false;
}
/**
判断输入框中输入的日期格式是否为 yyyy-mm-dd 或yyyy-m-d
*/
function isDate(dateString){
if(dateString.trim()=="")return true;
//年月日正则表达式
var r=dateString.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null){
alert("请输入格式正确的日期\n\r日期格式:yyyy-mm-dd\n\r例 如:2008-08-08\n\r");
return false;
}
var d=new Date(r[1],r[3]-1,r[4]);
var num = (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
if(num==0){
alert("请输入格式正确的日期\n\r日期格式:yyyy-mm-dd\n\r例 如:2008-08-08\n\r");
return false;
}
return (num!=0);
} </script>
</head>
<body>
<s:form action="regMember.action">
<table align="center">
<tr><td><s:textfield label="成员账号" name="tempUserInfo.account" /></td></tr>
<tr><td><s:textfield label="密码" name="tempUserInfo.password" /></td></tr>
<tr><td><s:radio name="tempUserInfo.sex" list="#{'0':'男','1':'女'}" label="性别"></s:radio></td></tr>
<tr><td><s:textfield label="出生年月" id="demo1" name="tempUserInfo.birthday" /></td></tr>
<tr><td>
<tr><td><s:submit value="提交" onclick="validator()" /></td></tr>
</table>
</s:form>
</body>
但我碰到的问题是:时间格式错误时,提示对话框也弹出来了,但是点击对话框上面的“确定”后,还是会触发提交动作。而我想要的是弹出错误提示后,点击“确定”,还是停留在原来页面,让用户可以修改时间格式。//验证是否为日期
function validator(){
if(isDate(document.all.demo1.value.trim())==false){
document.all.demo1.select();
return false;
}
/**
判断输入框中输入的日期格式是否为 yyyy-mm-dd 或yyyy-m-d
*/
function isDate(dateString){
if(dateString.trim()=="")return true;
//年月日正则表达式
var r=dateString.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null){
alert("请输入格式正确的日期\n\r日期格式:yyyy-mm-dd\n\r例 如:2008-08-08\n\r");
return false;
}
var d=new Date(r[1],r[3]-1,r[4]);
var num = (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
if(num==0){
alert("请输入格式正确的日期\n\r日期格式:yyyy-mm-dd\n\r例 如:2008-08-08\n\r");
return false;
}
return (num!=0);
} </script>
</head>
<body>
<s:form action="regMember.action">
<table align="center">
<tr><td><s:textfield label="成员账号" name="tempUserInfo.account" /></td></tr>
<tr><td><s:textfield label="密码" name="tempUserInfo.password" /></td></tr>
<tr><td><s:radio name="tempUserInfo.sex" list="#{'0':'男','1':'女'}" label="性别"></s:radio></td></tr>
<tr><td><s:textfield label="出生年月" id="demo1" name="tempUserInfo.birthday" /></td></tr>
<tr><td>
<tr><td><s:submit value="提交" onclick="validator()" /></td></tr>
</table>
</s:form>
</body>
解决方案 »
- Java蓝桥杯第一次模拟运送马匹问题
- 单例模式中成员变量为啥一定要是private的?
- jsp页面的单选按钮在修改页面修改时怎么根据数据库里存的值反选呢?
- 关于垃圾回收器的问题
- [200分]求一JAVA 代码-产生一个0到100的随机数,要求随机数大于50时抛出,用自定义异常
- 2只女菜鸟在树上等你呢!
- 谁说 throw statement 不能 throw Object?
- 做过网站的请给个idea----关于网页动态更新
- **********谁能给我一分需求文档?我想练练uml和Java***********
- 在midp中如何访问手机的内部文件呀“例如:通讯录”
- getInterfaces和getGenericInterfaces有什么区别啊
- 高分求教什么是链表,谢谢各位!(终于可以给高分了,呵呵~~~)
1.加一个隐藏的iframe,将提交的target指向这个frame,frame里弹JS提示。
2.Ajax.
function validator(){
if(isDate(document.all.demo1.value.trim())==false){
document.all.demo1.select();
return false;
}
return true;
}/**
判断输入框中输入的日期格式是否为 yyyy-mm-dd 或yyyy-m-d
*/
function isDate(dateString){
if(dateString.trim()=="")return true;
//年月日正则表达式
var r=dateString.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null){
alert("请输入格式正确的日期\n\r日期格式:yyyy-mm-dd\n\r例 如:2008-08-08\n\r");
return false;
}
var d=new Date(r[1],r[3]-1,r[4]);
var num = (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
if(num==0){
alert("请输入格式正确的日期\n\r日期格式:yyyy-mm-dd\n\r例 如:2008-08-08\n\r");
return false;
}
return (num!=0);
} </script>
</head>
<body>
<s:form action="regMember.action" onsubmit="return validator()">
<table align="center">
<tr><td><s:textfield label="成员账号" name="tempUserInfo.account" /></td></tr>
<tr><td><s:textfield label="密码" name="tempUserInfo.password" /></td></tr>
<tr><td><s:radio name="tempUserInfo.sex" list="#{'0':'男','1':'女'}" label="性别"></s:radio></td></tr>
<tr><td><s:textfield label="出生年月" id="demo1" name="tempUserInfo.birthday" /></td></tr>
<tr><td>
<tr><td><s:submit value="提交" /></td></tr>
</table>
</s:form>
</body>
这么麻烦啊,Ajax我还没学过
我就说下大的范围:
if(这里写判断时间的格式不成功的话){
ALERT("DDDD");
RETURN FALSE;
}
else{
调用你的后台方法;
}
比如<s:form action="regMember.action" onsubmit="return validator()" onsubmit="return abc()" onsubmit="return xxx()">???