【JSP】表单提交与表单验证
程序员文章站
2022-06-09 14:04:28
...
几点小结:
(1)使用form表单提交数据,提交后的数据将会在另一个jsp页面进行处理。也可以实现不跳转,同时使用ajax进行局部更新,这里暂不进行说明。
(2)提交表单前需要进行数据验证时,响应在form中onsubmit事件,数据合法则返回true,然后实现页面跳转;数据不合要求则返回false,页面便不会跳转。
(3)要考虑中文参数的传递。由于浏览器,web服务器,数据库等的默认编码不一致,很容易出现中文乱码(参考:解决jsp中文乱码,修改mysql编码)。
以下是一个简单的表单提交与表单验证的例子。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ page import="java.sql.*" %> <!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=UTF-8"> <title>表单提交</title> </head> <body> <p align="center"><b>表单提交</b><br></p> <center> <div align="left"> <table height="60" border="0" align="left"> <tr> <td> <form name="channelform" action="addChannel.jsp" onsubmit="return validate_channel_info(this);" method="post"> 名字: <input type="text" name="channelname" /> <br /> ID: <input type="text" name="channelid" /> <br /> <input type="submit" value="提交"> </form> </td> </tr> </table> <script type="text/javascript"> function validate_channel_info(channelform) { if(channelform.channelname.value=="") { alert("请输入正确的名字"); return false; } else if(!isNumber(channelform.channelid.value)) { alert("请输入合法ID"); return false; } return true; } function isNumber(str) // 判断是否为非负整数 { var rx = /^[0-9]+$/; return rx.test(str); } </script> </div> </center> </body> </html>
这里要注意一下:onsubmit="return 函数名();",其中return不能少,否则即使js里边返回false,页面还是会跳转的!
转载:http://blog.csdn.net/moxiaomomo/article/details/8542903