jQuery_04

省市縣聯(lián)動

html代碼

<select name="province" id="p">
    <option value="">省份</option>
    <!-- 內(nèi)部之后 -->
</select>
<select name="city" id="c">
    <option value="">城市</option>
</select>
<select name="district" id="d">
    <option value="">區(qū)縣</option>
</select>


<script type="text/javascript" src="../../jquery-3.4.1.min.js" ></script>
<script type="text/javascript">
// 就緒函數(shù)
$(document).ready(function(){
// 加載省份信息
$.ajax({
    type: 'post',
    url: 'region.php',
    data: 'parentid=0',
    success: function(res){
        console.log(res);
        var ps = JSON.parse(res);
        console.log(ps);
        // 遍歷省份數(shù)組
        $.each(ps, function(i,v){
            // v是對象,表示單個省份信息
            // console.log(v);
            // 將省份信息追加到省份下拉框中
            $('#p').append('<option value="'+v.id+'">'+v.firstletter+' '+v.name+'</option>');
        });
    }
});

// 點選省份,獲取省份下的城市
$('#p').change(function(){
    // parentid=省份的id
    console.log($(this).val());
    $.ajax({
        type: 'post',
        url: 'region.php',
        data: {parentid: $(this).val()},
        dataType: 'json',
        success: function(res){
            console.log(res);
            // 添加之前
            // 先清空城市下拉框的歷史記錄
            $('#c').empty().prepend('<option value="">城市</option>');
            $('#d').children().first().nextAll().remove();

            // 將城市數(shù)組添加到城市下拉框
            $.each(res, function(i, v){
                $('#c').append('<option value="'+v.id+'">'+v.firstletter+' '+v.name+'</option>');
            });
        }
    });
});

// 點選城市,獲取城市下的區(qū)縣
$('#c').change(function(){
    $.ajax({
        type: 'post',
        url: 'region.php',
        data: {parentid: $(this).val()},
        dataType: 'json',
        success: function(res){
            console.log(res);
            // 先清空區(qū)縣的歷史記錄
            $('#d').children().first().nextAll().remove();

            $.each(res, function(i,v){
                // 將區(qū)縣數(shù)組添加到區(qū)縣下拉框中
                $('#d').append('<option value="'+v.id+'">'+v.firstletter+' '+v.name+'</option>');
            });
        }
    });
});
});
</script>

php代碼

// 接收參數(shù)
$parentid = $_POST['parentid'];
// $parentid = 0;

if (is_numeric($parentid) && $parentid >= 0) {
    // 1. 連接數(shù)據(jù)庫
    $dsn = "mysql:host=localhost;dbname=coding;port=3306";
    $pdo = new PDO($dsn, 'root', '');

    // 2. 根據(jù)參數(shù)查詢行政區(qū)劃信息
    $sql   = "SELECT id, firstletter, name FROM coding_region WHERE parentid=:pid ORDER BY firstletter ASC";
    $stmt  = $pdo->prepare($sql);
    $param = [
        ':pid' => $parentid,
    ];
    $stmt->execute($param);

    $res = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // 3. 將PHP的變量轉(zhuǎn)換成json,響應(yīng)給瀏覽器端
    echo json_encode($res);
} else {
    echo json_encode([]);
}

jQuery-ui 手風(fēng)琴

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>01_accordion(手風(fēng)琴)</title>
    <link rel="stylesheet" href="../../jquery-ui/jquery-ui.css">
</head>

<body>

    <h3 class="demoHeaders">手風(fēng)琴</h3>
    <div id="accordion">
        <div class="group">
            <h3>水滸傳</h3>
            <div>105個男人和3個女人的故事</div>
        </div>
        <div class="group">
            <h3>西游記</h3>
            <div>1個人和一群妖怪的故事</div>
        </div>
        <div class="group">
            <h3>紅樓夢</h3>
            <div>一個男人和一群女人的故事</div>
        </div>
        
        <div class="group">
            <h3>三國演義</h3>
            <div>屌絲奇遇記</div>
        </div>
    </div>

    <script type="text/javascript" src="../../jquery-3.4.1.min.js"></script>
    <script type="text/javascript" src="../../jquery-ui/jquery-ui.js"></script>
    <script type="text/javascript">
        // 就緒函數(shù)
        $(function () {
            $("#accordion")
                .accordion({
                    header: "> div > h3", //設(shè)置標(biāo)題項
                    collapsible:true  //允許所有折疊
                })
                .sortable({
                    axis: "y", //只能上下移動
                    handle: "h3", //拖動h3標(biāo)簽, 寫 h3,div 就可以拖動兩者
                    stop: function (event, ui) {
                        // 當(dāng)排序時到忽,IE 不能注冊 blur艰躺,所以觸發(fā) focusout 處理程序來移除 .ui-state-focus
                        ui.item.children("h3").triggerHandler("focusout");
                        $('#accordion').accordion('refresh');
                    }
                });
        });
    </script>

</body>

</html>

jQuery-ui 日歷

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>02_datepicker</title>
    <link rel="stylesheet" href="../../jquery-ui/jquery-ui.css">
</head>
<body>

    <form action="">
        生日: <input type="text" name="birthday" value="" id="birthday">
    </form>
    
    <script type="text/javascript" src="../../jquery-3.4.1.min.js" ></script>
    <script type="text/javascript" src="../../jquery-ui/jquery-ui.js"></script>
    <script type="text/javascript">
    // 就緒函數(shù)
    $(function(){
        // 調(diào)用日歷組件: 詳細(xì)
        $("#birthday").datepicker({
            changeMonth: true, //月份下拉選項
            changeYear: true, //年份下拉選項
            dateFormat: 'yy-mm-dd' //日期選中后的格式化字符串
        });
    }); 
    </script>

</body>
</html>

jQuery-validation

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>03_validation</title>
    <link rel="stylesheet" href="../../jquery-validation/demo/css/screen.css">
</head>

<body>

    <h3>用戶注冊</h3>
    <form action="#" method="post">
        <table>
            <tr>
                <td>用戶名</td>
                <td><input type="text" name="username" value=""></td>
            </tr>
            <tr>
                <td>密碼</td>
                <td><input type="password" name="password" value="" id="password"></td>
            </tr>
            <tr>
                <td>確認(rèn)密碼</td>
                <td><input type="password" name="repassword" value=""></td>
            </tr>
            <tr>
                <td>郵箱</td>
                <td><input type="text" name="email" value=""></td>
            </tr>
            <tr>
                <td>手機號</td>
                <td><input type="text" name="phone" value=""></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" value="注冊"></td>
            </tr>
        </table>
    </form>


    <script type="text/javascript" src="../../jquery-3.4.1.min.js"></script>
    <script type="text/javascript" src="../../jquery-validation/dist/jquery.validate.js"></script>
    <script type="text/javascript">
        // 自定義手機號的驗證規(guī)則
        $.validator.addMethod('isPhone', function (value) {
            if (value != "") {
                var pattern = /^1(3\d|4[579]|5[0-35-9]|66|7[35-8]|8\d|9[89])\d{8}$/;
                return pattern.test(value);
            } else {
                // 交給required規(guī)則驗證
                return true;
            }
        }, '手機號格式不正確');

        // 就緒函數(shù)
        $(function () {
            // 調(diào)用驗證器: 
            // $(選擇器).validate({驗證規(guī)則,報錯消息});
            $('form').validate({
                rules: {
                    username: {
                        required: true,
                        minlength: 2
                    },
                    password: {
                        required: true,
                        minlength: 5
                    },
                    repassword: {
                        required: true,
                        minlength: 5,
                        equalTo: "#password"
                    },
                    email: {
                        // required: true,
                        email: true
                    },
                    phone: {
                        isPhone: true
                    }
                },
                messages: {
                    username: {
                        required: "用戶名不能為空",
                        minlength: "用戶名最短是2位"
                    },
                    password: {
                        required: "密碼不能為空",
                        minlength: "密碼最短是5位"
                    },
                    repassword: {
                        required: "密碼不能為空",
                        minlength: "密碼最短是5位",
                        equalTo: "兩次輸入的密碼不一致"
                    },
                    email: {
                        email: "請輸入合法的郵箱地址"
                    },
                    phone: {
                        isPhone: "手機號非法"
                    }
                }
            });
        }); 
    </script>

</body>

</html>

自定義jQuery擴展方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jQuery</title>
</head>
<body>
    <script type="text/javascript" src="../../jquery-3.4.1.min.js" ></script>
    <script type="text/javascript">
    $.extend({
      min: function(a, b) {
        return a < b ? a : b;
      },
      max: function(a, b) {
        return a > b ? a : b;
      }
    });
    // 就緒函數(shù)
    $(function(){
        // 求最大值
        console.log($.max(2, 7));

        // 求最小值
        console.log($.min(2, 7));
    }); 
    </script>

</body>
</html>

自定義選擇器擴展方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jQuery</title>
</head>
<body>

    <input type="checkbox" name="class[]" value="php"> PHP<br>
    <input type="checkbox" name="class[]" value="js" checked="checked"> JS<br>
    <button id="check">全選</button>
    <button id="uncheck">取消</button>
    <button id="rcheck">反選</button>

    
    <script type="text/javascript" src="../../jquery-3.4.1.min.js" ></script>
    <script type="text/javascript">
$.fn.extend({
    // 全選
    check: function() {
        // this表示選擇器選中的結(jié)果集
        console.log(this);
        return this.each(function() {
            // this是單個checkbox
            console.log(this);
            this.checked = true;
        });
    },
    // 取消
    uncheck: function() {
        return this.each(function() {
            this.checked = false;
        });
    },
    // 反選
    rcheck: function() {
        return this.each(function() {
            this.checked = !this.checked;
        });
    }
});
    // 就緒函數(shù)
    $(function(){
        // 單擊"全選"按鈕
        $('#check').click(function(){
            $('[type="checkbox"]').check();
        });
        // 單擊"取消"按鈕
        $('#uncheck').click(function(){
            $('[type="checkbox"]').uncheck();
        });
        // 單擊"反選"按鈕
        $('#rcheck').click(function(){
            $('[type="checkbox"]').rcheck();
        });
    }); 
    </script>

</body>
</html>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市犀忱,隨后出現(xiàn)的幾起案子钞它,更是在濱河造成了極大的恐慌拜银,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遭垛,死亡現(xiàn)場離奇詭異尼桶,居然都是意外死亡,警方通過查閱死者的電腦和手機锯仪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門泵督,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人庶喜,你說我怎么就攤上這事小腊。” “怎么了久窟?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵秩冈,是天一觀的道長。 經(jīng)常有香客問我斥扛,道長入问,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮芬失,結(jié)果婚禮上楣黍,老公的妹妹穿的比我還像新娘。我一直安慰自己棱烂,他們只是感情好租漂,可當(dāng)我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垢啼,像睡著了一般窜锯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芭析,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天锚扎,我揣著相機與錄音,去河邊找鬼馁启。 笑死驾孔,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惯疙。 我是一名探鬼主播翠勉,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼霉颠!你這毒婦竟也來了对碌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蒿偎,失蹤者是張志新(化名)和其女友劉穎朽们,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诉位,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡骑脱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了苍糠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叁丧。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖岳瞭,靈堂內(nèi)的尸體忽然破棺而出拥娄,到底是詐尸還是另有隱情,我是刑警寧澤瞳筏,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布稚瘾,位于F島的核電站,受9級特大地震影響乏矾,放射性物質(zhì)發(fā)生泄漏孟抗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一钻心、第九天 我趴在偏房一處隱蔽的房頂上張望凄硼。 院中可真熱鬧,春花似錦捷沸、人聲如沸摊沉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽说墨。三九已至,卻和暖如春苍柏,著一層夾襖步出監(jiān)牢的瞬間尼斧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工试吁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棺棵,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓熄捍,卻偏偏與公主長得像烛恤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子余耽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • javascript功能插件大集合缚柏,寫前端的親們記得收藏 包管理器管理著 javascript 庫,并提供讀取和打...
    狗狗嗖閱讀 781評論 0 1
  • 飄零酒閱讀 113評論 0 0
  • 這兩天我又開始看黑塞的《悉達(dá)多》了碟贾。黑塞的大部分作品币喧,像《德米安》,我讀著也很好缕陕,但只有《悉達(dá)多》是強烈的喜歡粱锐。這...
    姜三瘋閱讀 689評論 0 51
  • 今天去銀行取錢,等了半個多小時被告知卡是二類卡扛邑,每天有取款上限怜浅,只能取一萬元,要升級一類卡才可以蔬崩,就問工作人員恶座,工...
    林岫浩然813閱讀 122評論 0 0