1、验证:
客户端验证:
减少服务器负载
缩短用户等待时间
兼容性难
缩短用户等待时间
兼容性难
服务器端验证:
统一确认
兼容性强
服务器负载重
兼容性强
服务器负载重
2、使用Javascript进行表单检验的常用方法:
- var username = document.getElementByIdx_x("username");
- var username = document.getElementsByName("username")[0];
- var nodes = document.getElementsByTagName_r("input");
2.1、基本的表单验证例子:
HTML代码:
- <</SPAN>form onsubmit="return validate()" action="loginServlet">
- username:<</SPAN>input type="text" id="username" name="username"/><</SPAN>br />
- password:<</SPAN>input type="password" id="username" name="password"><</SPAN>br />
- <</SPAN>input type="submit" value="submit" />
- </</SPAN>form>
JS验证代码:
- function validate(){
- //使用getElementById方法获取元素
- var username = document.getElementByIdx_x("username");
- var password = document.getElementByIdx_x("password");
- //使用getElementsByName获取一组元素
- //var username = document.getElementsByName("username")[0];
- //var username = document.getElementsByName("password")[0];
- //获取元素的值 并判断长度
- if(username.value.length == 0){
- alert("用户名不能为空");
- return false;
- }
- if(password.value.length <6){
- alert("密码不能少于6位");
- return false;
- }
- return true;
- }
- //根据标签获取元素组
- var nodes = document.getElementsByTagName_r("input");
- for(var i=0; i
- //获取标签类型
- alert(nodes[i].type);
- }
2.2、单选按钮的验证例子:
HTML代码:
- 男<</SPAN>input type="radio" name="gender" value="男">
- 女<</SPAN>input type="radio" name="gender" value="女">
JS验证代码:
- //单选按钮的验证
- var gender = document.getElementsByName("gender");
- if(!gender[0].checked && !gender[1].checked){
- alert("请选择性别!");
- }
2.3、复选框全选的例子:
HTML代码:
- <</SPAN>input type="checkbox" name="selectAll" onclick="selectAll()">Select all<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="1">1<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="2">2<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="3">3<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="4">4<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="5">5<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="6">6<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="7">7<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="8">8<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="9">9<</SPAN>br />
- <</SPAN>input type="checkbox" name="number" value="10">10<</SPAN>br /><</SPAN>inputtype="checkbox" name="number">10<</SPAN>br />
JS代码:
- function selectAll(){
- var selectAll = document.getElementsByName("selectAll")[0];
- if(selectAll.checked){
- var numbers = document.getElementsByName("number");
- for(var i=0; i
- numbers[i].checked = true;
- }
- } else {
- for(var i=0; i
- numbers[i].checked = false;
- }
- }
- }
判断复选框是否有选择:
- function validateCheckbox(){
- var n = 0;
- for(var i=0; i
- if(numbers[i].checked){
- n++;
- }
- }
- if(n < 1){
- alert("至少要选择一项");
- }
- }
3、在服务器端使用Servlet进行验证的例子:
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- String username = req.getParameter("username");
- String password = req.getParameter("password");
- //获取单选按钮的值
- String gender = req.getParameter("gender");
- //获取复选框的值
- String[] numbers = req.getParameterValues("number");
- List list = new ArrayList();
- //验证判断
- if("".equals(username)){
- list.add("用户名不能为空");
- }
- if(password == null){
- list.add("用户密码不能为空");
- }
- if(password != null && password.length()<</SPAN>6){
- list.add("用户密码不能少于6位");
- }
- //页面跳转
- if(list.isEmpty()){
- req.getRequestDispatcher("index.jsp").forward(req, resp);
- } else {
- req.setAttribute("error", list);
- req.getRequestDispatcher("error.jsp").forward(req, resp);
- }
- }
4、Servlet中的编码设置:
- req.setCharacterEncoding("utf-8");
- resp.setCharacterEncoding("utf-8");
- ...
- //编码设置
- gender = new String(gender.getBytes("iso-8859-1"),"utf-8");