一起学习JQuery

这个小项目主要是用来验证用户名,当输入框为空时,输入框的四周是红色边框,并且底部有红色波浪线,若此时提交会出现"用户名不空"的提示。当输入的用户名为"aaa"时,会出现"用户名已经存在"的提示,输入其他的用户名会显示"可以使用此用户名".


css图片


所谓波浪线就是由这个小图片不断重复组成的,也就是css文件中的这一行代

background-repeat: repeat-x;//在x方向上重复


/JQuery/WebRoot/UserVerify.html    //主界面

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>JQuery实战1-用户名校验</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="css/userVerify.css" />//包含了一个css文件
<script type="text/javascript" src="js/jquery.js"></script>//包含了一个jquery.js文件,这是jquery提供的
<script type="text/javascript" src="js/userVerify.js"></script>//包含了一个自己写的js文件
</head>
<body>
请输入用户名:<input type="text" id="userName" class="userText"/> <input type="button" value="校验" id="verifyButton" />
<div id="result"></div>
</body>

</html>


//JQuery/WebRoot/js/jquery.js中的jquery.js文件自己可以从网上下载


//JQuery/WebRoot/js/userVerify.js

/*
 * 需要通过Javascript代码来做两件事情
 * 1.button被按下的时候,需要将文本框中的数据获取到,然后发送给服务器端,最后接受服务器返回的数据,填充到我们预留的div中,这样用户就可以看到结果
 * 2.文本框上,用户按键之后,需要判断文本框中的内容是否为空,如果不为空,红色的边框和背景图就应该取消,否则保留
 * */


/*
 * 需要在页面装载完成是注册上这些工作
 * */
$(document).ready(function() {
//这里面的内容就是页面装载完成后需要执行的代码
var userNameNode = $("#userName");
//需要找到button按扭,注册事件
$("#verifyButton").click(function() {
//1.获取文本框的内容
var userName = userNameNode.val();
//2.将这个内容发送给服务器端
if (userName == "") {
alert("用户名不能为空");
} else {
$.get("http://127.0.0.1:80/JQuery/UserVerify?userName=" + encodeURI(encodeURI(userName)),null,function(response){
//3.接收服务器端返回的数据,填充到div中
$("#result").html(response);
});

}
});
//需要找到文本框,注册事件
userNameNode.keyup(function(){
//获取当前文本框中的内容
var value = userNameNode.val();
if (value == "") {
//让边框变成红色,并且带背景图
userNameNode.addClass("userText");
} else {
//去掉边框和背景图
userNameNode.removeClass("userText");

}
});
});



UserVerify.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


package cn.sdu.jquery;


import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 *
 * @author xingxing
 */
public class UserVerify extends HttpServlet {
   
    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            String param = request.getParameter("userName");
            if (param == null || param.length() == 0) {
                out.println("用户名不能为空");
            } else {
                String userName = URLDecoder.decode(param, "UTF-8");
                if (userName.equals("aaa")) {
                    out.println("用户名[" + userName + "]已经存在,请使用别的用户名注册");
                } else {
                    out.println("可以使用用户名[" + userName + "]注册");
                }
            }
        } finally { 
            out.close();
        }
    } 


    // <editor-fold defaultstate="collapsed" desc="HttpServlet">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 


    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }


    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>


}


/JQuery/WebRoot/css/userVerify.css//用来实现底部波浪线的效果

.userText {
border: 1px solid red;
background-image: url(../images/userVerify.gif);
background-repeat: repeat-x;
background-position: bottom;
}


web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>UserVerify</servlet-name>
        <servlet-class>net.itcast.UserVerify</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UserVerify</servlet-name>
        <url-pattern>/UserVerify</url-pattern>
    </servlet-mapping>
    </web-app>






JQuery实战
z 用户名校验:
服务器端思路分析:
对指定用户名(比如aaa)返回用户名已
经存在
对其他用户名,返回用户名可以使用。
输入:adfad
(约定参数名为userName )
输出:提示信息
(一段纯文本的内容,包含输入的用户名)
(可以使用用户名[adfad]注册)




JQuery实战
z 本节学到的JQuery及其他开发知识:
z 1.HTML 负责页面内容,CSS负责页面样式,
Javascript 负责页面行为
z 2.HTML 中应该有DOCTYPE 来告知浏览器的
渲染显示方式
z 3. 可以先定义div或span节点用于以后显示服
务器返回数据。
z 4.border 属性可以控制页面元素的边框
z 5.background-*** 可以控制背景图,以及背景
图的位置,重复显示的方式
z 本节学到的JQuery及其他开发知识:
z 6. 可以通过#idname 或.classname的方式来个
制定的html 节点定义样式
z 7. 可以通过$(document).ready(function(){}) 的
方式来定义页面装载完成时,需要执行的方
法。
z 8. 可以通过$()方法来获得页面的指定节点,
参数是某种css 的选择器
z9. 可以在$()方法返回的jquery 对象上执行各种
Jquery的方法来获取数据,定义事件,执行
操作。
z 10.val()方法可以获得节点的value属性值
z 11.html() 方法可以设定某个节点中的html 内容
z 12.click()方法可以响应鼠标点击事件
z 13.keyup() 方法可以响应键盘弹起的事件。
z 14.$.get()方法可以和服务器端进行get方式的
交互,注册的callback 方法会再数据回来的时
候被调用,这个方法会接收到代表服务器端
返回数据的一个纯文本的参数
z 15.addClass() removeClass()方法可以给某
个节点添加或删除一个class
z 16.发送给服务器端的数据在javascript 中做两
次encodeURI,然后在服务器端的代码中按
UTF-8 的方式做一次URLDecode,可以解决
中文乱码问题。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值