免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3281 | 回复: 4
打印 上一主题 下一主题

[表单] javascript 表单 验证问题?(不想执行 POST ACTION) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-31 09:20 |只看该作者 |倒序浏览
我有二个jsp网页来测试 javascript 表单 验证.如下
===========js1.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript">
function check(form){
if(form.name.value==""){
alert("输入不能为空")
form.elements(0).focus();
return false;

}
else if(form.pwd1.value==""){
alert("pwd1输入不能为空");
form.elements(1).focus();
return false;
}
else if(form.pwd2.value==""){
alert("pwd2输入不能为空");
form.elements(2).focus();
return false;
}
else if(form.mail.value == "" ||
      form.mail.value.indexOf('@', 0) == -1) {
alert("mail输入不正确");
form.elements(3).focus();
return false;
}
else if(form.pwd1.value!=form.pwd2.value){
form.elements(1).focus();
alert("二次输入的密码不正确");
return false;

}


}



</script>
<body>
<table width="700" border="1">
  <tr>
    <td><form action="js2.jsp" method="post" name="form1" target="_blank">
      <table width="700" border="1">
        <tr>
          <td width="158">ID</td>
          <td width="526"><input name="name" type="text" id="user"></td>
        </tr>
        <tr>
          <td>PASSWORD</td>
          <td><input name="pwd1" type="password" id="pwd1"></td>
        </tr>
        <tr>
          <td>PASSWORD AGAIN </td>
          <td><input name="pwd2" type="password" id="pwd2"></td>
        </tr>
        <tr>
          <td>E-MAIL</td>
          <td><input name="mail" type="text" id="mail"></td>
        </tr>
        <tr>
          <td> </td>
          <td><input type="submit" name="Submit" value="提交" onClick="check(this.form)">
            <input type="reset" name="Submit" value="重置"></td>
        </tr>
      </table>
    </form></td>
  </tr>
</table>
</body>
</html>
===========js2.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<% String user=request.getParameter("name");
System.out.println("======================>"+user);
    String pwd1=request.getParameter("pwd1");
        System.out.println("======================>"+pwd1);
    String mail=request.getParameter("mail");
        System.out.println("======================>"+mail); %>
<body>
aaa
</body>
</html>
====================================================
我故意输入错误信息 javascript有相应的错误提示,可是为什么还要执行
<form action="js2.jsp" method="post" name="form1" target="_blank">
我的本本意是如果客户输入错误 不执行POST action到 JS2.jsp 要客户从新输入。
我从我的tomcat上看到相应信息
知道的朋友请看一下我的代码 问题出在哪里?

[ 本帖最后由 HonestQiao 于 2006-6-2 10:51 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-05-31 10:17 |只看该作者
自己搞定了 哈
js1.jsp
<form action="js2.jsp" method="post" name="form1" target="_blank" onSubmit="return check()">

<script language="javascript">
function check(){
if(document.form1.name.value==""){
alert("输入不能为空")
document.form1.elements(0).focus();
return false;

}
else if(document.form1.pwd1.value==""){
alert("pwd1输入不能为空");
document.form1.elements(1).focus();
return false;
}
else if(document.form1.pwd2.value==""){
alert("pwd2输入不能为空");
document.form1.elements(2).focus();
return false;
}
else if(document.form1.mail.value == "" ||
      document.form1.mail.value.indexOf('@', 0) == -1) {
alert("mail输入不正确");
document.form1.elements(3).focus();
return false;
}
else if(document.form1.pwd1.value!=document.form1.pwd2.value){
document.form1.elements(1).focus();
alert("二次输入的密码不正确");
return false;

}


}

论坛徽章:
0
3 [报告]
发表于 2006-05-31 10:22 |只看该作者
自己解决问题是最好的出路

论坛徽章:
0
4 [报告]
发表于 2006-06-01 08:47 |只看该作者
去随便找一个现成的验证库,比自己写要强得多

论坛徽章:
0
5 [报告]
发表于 2006-06-02 00:55 |只看该作者
嗯,初学的时候一般都容易出这种问题,不让函数返回nSubmit="check()".改成这样就好了onSubmit="return check()".
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP