jQuery實戰-填寫個人詳細信息

通過“填寫個人詳細信息”的例子,用jQuery實現了帳號格式檢查,密碼一致性檢查,省市下拉框級聯,郵箱手機號格式檢查,以及各種標籤元素對象和值的獲取方法……

源代碼

index.html

<!DOCTYPE html>
<html>
    <meta charset="utf-8" />

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>學生信息管理</title>

        <style type="text/css">
            h1 {
                font-family: 仿宋;
                text-align: center;
                color: red;
            }
        </style>

        <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
        <script type="text/javascript" src="js/jQueryControl.js"></script>
    </head>

    <body>
        <h1 id="title">
        <b>
            請填寫個人詳細信息
        </b>
    </h1>

        <form action="" method="post">
            <table border="0" align="center">
                <tr>
                    <td>用戶名</td>
                    <td>
                        <input type="text" id="username" name="username" maxlength="15">
                        <span id="usernameCheck"></span>
                        <td>
                </tr>
                <tr>
                    <td>密碼</td>
                    <td>
                        <input type="password" id="password" name="password" maxlength="15">
                        <span id="passwordCheck"></span>
                    </td>
                </tr>
                <tr>
                    <td>確認密碼</td>
                    <td>
                        <input type="password" id="rePassword" name="rePassword" maxlength="15">
                        <span id="rePasswordCheck"></span>
                    </td>
                </tr>
                <tr>
                    <td>性別</td>
                    <td>
                        <input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女"></td>
                </tr>
                <tr>
                    <td>籍貫</td>
                    <td>
                        <select name="province">
                            <option select>請選擇</option>
                        </select><select name="city">
                            <option select>請選擇</option>
                        </select></td>
                </tr>
                <tr>
                    <td>Email</td>
                    <td>
                        <input type="text" id="email" name="email" placeholder="如 [email protected]" maxlength="30" minlength="5">
                        <span id="emailCheck"></span>
                    </td>

                </tr>
                <tr>
                    <td>手機號</td>
                    <td>
                        <input type="text" id="tel" name="tel" placeholder="11位,全數字" maxlength="11">
                        <span id="telCheck"></span>
                    </td>
                </tr>
                <tr>
                    <td>專業擅長</td>
                    <td>
                        <select name="major" size=4 multiple="multiple">
                            <option value="Windows編程">Windows編程</option>
                            <option value="單片機編程">單片機編程</option>
                            <option value="ASP.NET編程">ASP.NET編程</option>
                            <option value="J2EE編程">J2EE編程</option>
                            <option value="PHP編程">PHP編程</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>業餘愛好</td>
                    <td>
                        <input type="checkbox" name="football" value="足球">足球
                        <input type="checkbox" name="basketball" value="籃球">籃球
                        <input type="checkbox" name="volleyball" value="排球">排球
                        <input type="checkbox" name="sing" value="唱歌">唱歌
                        <input type="checkbox" name="other" value="其他">其他
                    </td>
                </tr>
                <tr>
                    <td>個人照片</td>
                    <td>
                        <input type="file" name="picture">
                    </td>
                </tr>
                <tr>
                    <td>出生年月</td>
                    <td>
                        <input type="date" name="birthday" maxlength="15">
                    </td>
                </tr>
                <tr>
                    <td>備註信息</td>
                    <td>
                        <textarea name="remarks" placeholder="可以補充一下" cols="35" rows="7"></textarea>
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="button" name="getIfo" value="提交">
                    </td>
                    <td>
                        <input type="reset" name="reset" value="重填">
                    </td>
                </tr>
            </table>
        </form>
    </body>

</html>

jQueryControl.js

/*獲取所有值並顯示*/
$(function() {
    $("input[name='getIfo']").click(function(){
        var information = "";
        var username = $("#username").val();
        var password = $("#password").val();
        var sex = $("input[name='sex']:checked").val();
        var province = $("select[name='province'] option:selected").text();
        var city = $("select[name='city'] option:selected").text();
        var email = $("#email").val();
        var tel = $("#tel").val();

        var major = "專業擅長:";
        $("select[name='major'] option:selected").each(function(){   //遍歷獲取選中的選項值
            major += $(this).text() + "、";
        });
        major = major.substr(0,major.length-1);   //截取字符串,去掉末尾頓號

        var hobby = "業餘愛好:";
        $("input[type='checkbox']:checked").each(function(i,val){
            hobby += $(this).val() + "、";
        });
        hobby = hobby.substr(0,hobby.length-1);   //截取字符串,去掉末尾頓號

        var picture = $("input[name='picture']").val() + "";
        var birthday = $("input[name='birthday']").val();
        var remarks = $("textarea[name='remarks']").val();

        information += "用戶名:" + username + "\n" 
                    + "密碼:" + password + "\n"
                    + "性別:" + sex + "\n"
                    + "省:" + province + "   市:" + city + "\n"
                    + "郵箱:" + email + "\n"
                    + "手機號:" + tel + "\n"
                    + major + "\n"
                    + hobby + "\n"
                    + "個人照片:" + picture + "\n"
                    + "出生年月:" + birthday + "\n"
                    + "備註信息:" + remarks + "\n";

        alert(information);
    });
});


/*帳號檢查*/
$(function() {
    //輸入框失去焦點時判斷輸入長度是否符合
    $("#username").blur(function() {
        var username = $(this).val();


        //長度不小於2,大於15
        if (username.length < 2 || username.length > 15) {
            $("#usernameCheck").show().html("<font color=\"red\">&nbsp;用戶名長度不小於2位,不大於15位</font>");
        } else {
            $("#usernameCheck").hide();
        }
    });
});


/*密碼檢查*/
$(function() {
    $("#password").blur(function() {
        var password = $(this).val();

        //長度不小於2,大於15
        if (password.length < 2 || password.length > 15) {
            $("#passwordCheck").show().html("<font color=\"red\">&nbsp;密碼長度不小於2位,不大於15位</font>");
        } else {
            $("#passwordCheck").hide();
        }
    });

    $("#rePassword").blur(function() {
        var password = $("#password").val();
        var rePassword = $(this).val();


        //長度不小於2,大於15
        if (rePassword != password) {
            $("#rePasswordCheck").show().html("<font color=\"red\">&nbsp;兩次輸入密碼不一致</font>");
        } else {
            $("#rePasswordCheck").hide();
        }
    });
});


/*省市級聯下拉框*/
$(function() {
    //北京市轄區名稱
    var city0 = ["東城區", "西城區", "崇文區", "宣武區", "朝陽區", "海淀區", "豐臺區", "石景山區", "房山區", "通州區", "順義區", "門頭溝區", "昌平區", "大興區", "懷柔區", "平谷區", "密雲縣", "延慶縣"];
    //上海市轄區名稱
    var city1 = ["黃浦區", "盧灣區", "徐彙區", "長寧區", "靜安區", "普陀區", "閘北區", "虹口區", "楊浦區", "寶山區", "閔行區", "嘉定區", "浦東新區", "金山區", "松江區", "青浦區", "南匯區", "奉賢區", "崇明縣"];
    //天津市轄區名稱
    var city2 = ["和平區", "河東區", "河西區", "南開區", "河北區", "紅橋區", "塘沽區", "漢沽區", "大港區", "東麗區", "西青區", "津南區", "北辰區", "武清區", "寶坻區", "寧河縣", "靜海縣", "薊縣"];
    //重慶市轄區名稱
    var city3 = ["渝中區", "大渡口區", "江北區", "沙坪壩區", "九龍坡區", "南岸區", "北碚區", "萬盛區", "雙橋區", "渝北區", "巴南區", "萬縣區", "涪陵區", "永川市", "合川市", "江津市", "南川市", "長壽縣", "綦江縣", "潼南縣", "榮昌縣", "壁山縣", "大足縣", "銅梁縣", "梁平縣", "城口縣", "墊江縣", "武隆縣", "豐都縣", "忠 縣", "開 縣", "雲陽縣", "青龍鎮青龍嘴", "奉節縣", "巫山縣", "巫溪縣", "南賓鎮", "中和鎮", "鍾多鎮", "聯合鎮", "漢葭鎮"];
    //河北省主要城市名稱
    var city4 = ["石家莊市", "唐山市", "秦皇島市", "邯鄲市", "邢臺市", "保定市", "張家口市", "承德市", "滄州市", "廊坊市", "衡水市"];
    //山西省主要城市名稱
    var city5 = ["太原市", "大同市", "陽泉市", "長治市", "晉城市", "朔州市", "晉中市", "運城市", "忻州市", "臨汾市", "呂梁市"];
    //遼寧省主要城市名稱
    var city6 = ["瀋陽市", "大連市", "鞍山市", "撫順市", "本溪市", "丹東市", "錦州市", "營口市", "阜新市", "遼陽市", "盤錦市", "鐵嶺市", "朝陽市", "葫蘆島市"];
    //吉林省主要城市名稱
    var city7 = ["長春市", "吉林市", "四平市", "遼源市", "通化市", "白山市", "松原市", "白城市", "延邊朝鮮族自治州"];
    //河南省主要城市名稱
    var city8 = ["鄭州市", "開封市", "洛陽市", "平頂山市", "安陽市", "鶴壁市", "新鄉市", "焦作市", "濮陽市", "許昌市", "漯河市", "三門峽市", "南陽市", "商丘市", "信陽市", "周口市", "駐馬店市", "濟源市"];
    //江蘇省主要城市名稱
    var city9 = ["南京市", "無錫市", "徐州市", "常州市", "蘇州市", "南通市", "連雲港市", "淮安市", "鹽城市", "揚州市", "鎮江市", "泰州市", "宿遷市"];
    //浙江省主要城市名稱
    var city10 = ["杭州市", "寧波市", "溫州市", "嘉興市", "湖州市", "紹興市", "金華市", "衢州市", "舟山市", "台州市", "麗水市"];
    //安徽省主要城市名稱
    var city11 = ["合肥市", "蕪湖市", "蚌埠市", "淮南市", "馬鞍山市", "淮北市", "銅陵市", "安慶市", "黃山市", "滁州市", "阜陽市", "宿州市", "巢湖市", "六安市", "亳州市", "池州市", "宣城市"];
    //福建省主要城市名稱
    var city12 = ["福州市", "廈門市", "莆田市", "三明市", "泉州市", "漳州市", "南平市", "龍巖市", "寧德市"];
    //江西省主要城市名稱
    var city13 = ["南昌市", "景德鎮市", "萍鄉市", "九江市", "新餘市", "鷹潭市", "贛州市", "吉安市", "宜春市", "撫州市", "上饒市"];
    //山東省主要城市名稱
    var city14 = ["濟南市", "青島市", "淄博市", "棗莊市", "東營市", "煙臺市", "濰坊市", "威海市", "濟寧市", "泰安市", "日照市", "萊蕪市", "臨沂市", "德州市", "聊城市", "濱州市", "菏澤市"];
    //湖北省主要城市名稱
    var city15 = ["武漢市", "黃石市", "襄樊市", "十堰市", "荊州市", "宜昌市", "荊門市", "鄂州市", "孝感市", "黃岡市", "咸寧市", "隨州市", "恩施州", "仙桃市", "潛江市", "天門市", "神農架林區"];
    //湖南省主要城市名稱
    var city16 = ["長沙市", "株洲市", "湘潭市", "衡陽市", "邵陽市", "岳陽市", "常德市", "張家界市", "益陽市", "郴州市", "永州市", "懷化市", "婁底市", "湘西州"];
    //廣東省主要城市名稱
    var city17 = ["廣州市", "深圳市", "珠海市", "汕頭市", "韶關市", "佛山市", "江門市", "湛江市", "茂名市", "肇慶市", "惠州市", "梅州市", "汕尾市", "河源市", "陽江市", "清遠市", "東莞市", "中山市", "潮州市", "揭陽市", "雲浮市"];
    //海南省主要城市名稱
    var city18 = ["海口市", "龍華區", "秀英區", "瓊山區", "美蘭區", "三亞市"];
    //四川省主要城市名稱
    var city19 = ["成都市", "自貢市", "攀枝花市", "瀘州市", "德陽市", "綿陽市", "廣元市", "遂寧市", "內江市", "樂山市", "南充市", "宜賓市", "廣安市", "達州市", "眉山市", "雅安市", "巴中市", "資陽市", "阿壩州", "甘孜州", "涼山州"];
    //貴州省主要城市名稱
    var city20 = ["貴陽市", "六盤水市", "遵義市", "安順市", "銅仁地區", "畢節地區", "黔西南州", "黔東南州", "黔南州"];
    //雲南省主要城市名稱
    var city21 = ["昆明市", "大理市", "曲靖市", "玉溪市", "昭通市", "楚雄市", "紅河市", "文山市", "思茅市", "西雙版納市", "保山市", "德宏市", "麗江市", "怒江市", "迪慶市", "臨滄市"];
    //陝西省主要城市名稱
    var city22 = ["西安市", "銅川市", "寶雞市", "咸陽市", "渭南市", "延安市", "漢中市", "榆林市", "安康市", "商洛市"];
    //甘肅省主要城市名稱
    var city23 = ["蘭州市", "嘉峪關市", "金昌市", "白銀市", "天水市", "武威市", "張掖市", "平涼市", "酒泉市", "慶陽市", "定西市", "隴南市", "臨夏州", "甘南州"];
    //青海省主要城市名稱
    var city24 = ["西寧市", "海東地區", "海北州", "黃南州", "海南州", "果洛州", "玉樹州", "海西州"];
    //黑龍江省主要城市名稱
    var city25 = ["哈爾濱市", "齊齊哈爾市", "雞西市", "鶴崗市", "雙鴨山市", "大慶市", "伊春市", "佳木斯市", "七臺河市", "牡丹江市", "黑河市", "綏化市", "大興安嶺地區"];
    //內蒙古自治區主要城市名稱
    var city26 = ["呼和浩特市", "包頭市", "烏海市", "赤峯市", "通遼市", "鄂爾多斯市", "呼倫貝爾市", "巴彥淖爾市", "烏蘭察布市", "興安盟", "錫林郭勒盟", "阿拉善盟"];
    //廣西壯族自治區主要城市名稱
    var city27 = ["南寧市", "柳州市", "桂林市", "梧州市", "北海市", "防城港市", "欽州市", "貴港市", "玉林市", "百色市", "賀州市", "河池市", "來賓市", "崇左市"];
    //西藏自治區主要城市名稱
    var city28 = ["拉薩市", "昌都地區", "山南地區", "日喀則地區", "那曲地區", "阿里地區", "林芝地區"];
    //寧夏回族自治區主要城市名稱
    var city29 = ["銀川市", "石嘴山市", "吳忠市", "固原市", "中衛市"];
    //新疆維吾爾自治區主要城市名稱
    var city30 = ["烏魯木齊市", "克拉瑪依市", "吐魯番地區", "哈密地區", "和田地區", "阿克蘇地區", "喀什地區", "克孜勒蘇柯爾克孜自治州", "巴音郭楞蒙古自治州", "昌吉回族自治州", "博爾塔拉蒙古自治州", "伊犁哈薩克自治州", "塔城地區", "阿勒泰地區", "石河子市", "阿拉爾市", "圖木舒克市", "五家渠市"];
    //臺灣省主要城市名稱
    var city31 = ["臺北市", "高雄市", "基隆市", "臺中市", "臺南市", "新竹市", "嘉義市", "臺北縣", "宜蘭縣", "桃園縣", "新竹縣", "苗栗縣", "臺中縣", "彰化縣", "南投縣", "雲林縣", "嘉義縣", "臺南縣", "高雄縣", "屏東縣", "澎湖縣", "臺東縣", "花蓮縣"];
    //香港特別行政區主要轄區名稱
    var city32 = ["中西區", "東區", "九龍城區", "觀塘區", "南區", "深水埗區", "黃大仙區", "灣仔區", "油尖旺區", "離島區", "葵青區", "北區", "西貢區", "沙田區", "屯門區", "大埔區", "荃灣區", "元朗區"];
    //澳門地區
    var city33 = ["澳門地區"];
    //其它地區
    var city34 = ["其它地區"];

    //全國省會,直轄市,自治區名稱
    var provinceName = ["北京市", "上海市", "天津市", "重慶市", "河北省", "山西省", "遼寧省", "吉林省", "河南省", "江蘇省", "浙江省", "安徽省", "福建省", "江西省", "山東省", "湖北省", "湖南省", "廣東省", "海南省", "四川省", "貴州省", "雲南省", "陝西省", "甘肅省", "青海省", "黑龍江省", "內蒙古自治區", "廣西壯族自治區", "西藏自治區", "寧夏回族自治區", "新疆維吾爾自治區", "臺灣省", "香港特別行政區", "澳門特別行政區", "其它"];

    //初始化省下拉框
    $.each(provinceName, function(i, val) { //i爲數組下標,val爲對應的值
        var option = $("<option></option>").text(val); //獲取省,加入option
        $("select[name='province']").append(option); //添加省
    });

    $("select[name='province']").change(function() {
        var province = $(this).val(); //獲取省下拉框選中的值

        $.each(provinceName, function(i, val) {
            if ($.trim(province) == $.trim(val)) { //必須要用trim去除string中的空格
                var citys = eval("city" + i); //得到城市的數組名cityi,並執行eval(cityi),即將cityi的值賦給citys

                $("select[name='city']").empty(); //清空市
                var defaultSelect = $("<option></option>").text("請選擇"); //添加默認“請選擇”
                $("select[name='city']").append(defaultSelect);
                $.each(citys, function(j, city) {
                    var option = $("<option></option>").text(city); //獲取市,加入option
                    $("select[name='city']").append(option); //添加市
                });
            }
        });
    });
});


/*郵箱檢查*/
$(function() {
    $("#email").blur(function() {
        var email = $(this).val();
        var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; //郵箱正則表達式

        if (email == "" || email == null) { //郵箱爲空時提示
            $("#emailCheck").show().html("<font color=\"red\">&nbsp;郵箱不能爲空</font>");
        } else if (!reg.test(email)) { //郵箱格式不正確時提示
            $("#emailCheck").show().html("<font color=\"red\">&nbsp;郵箱格式不正確</font>");
        } else {
            $("#emailCheck").hide();
        }
    });
});


/*手機號檢查*/
$(function() {
    $("#tel").blur(function() {
        var tel = $(this).val();
        var reg = /^1[3|4|5|7|8]\d{9}$/; //手機號正則表達式

        if (tel == "" || tel == null) { //手機號爲空時提示
            $("#telCheck").show().html("<font color=\"red\">&nbsp;手機號不能爲空</font>");
        } else if (!reg.test(tel)) { //手機號格式不正確時提示
            $("#telCheck").show().html("<font color=\"red\">&nbsp;手機號格式不正確</font>");
        } else {
            $("#telCheck").hide();
        }
    });
});

運行結果

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章