导航菜单
  • 首页
  • 首页>万博manbext3.0首页登录集>JavaScript万博manbext3.0首页登录集

    jQuery+Ajax实现表单的关联下拉菜单选择

    这是原画猫整站中的一个页面,通过选择城市,再选择该城市下的区域查询对应的校区。

    代码用的是jQuery,Ajax数据是本地的,没有真正的接口。

    用来练习一下对数据的处理还是ok的。

    1.jpg

    点击图片看效果。

    核心代码:

            // 准备数据
            $.get('data/schools.json', function (result) {
                // console.log(typeof result);
                // 初始化界面
                // 默认的情况是第一个市,第一个市下面的第一个区,对应的学校
                let cityIndex = 0;
                let areaIndex = 0;
    
                // 初始化城市
                let str = '';
                result.data.forEach(function (item, index) {
                    str += `<option value="${item.cityName}">${item.cityName}</option>`
                })
                $('#city1').html(str);
    
                // 初始化默认城市下面的区域
                initArea(cityIndex);
    
                // 初始化对应的学校
                changeSchools(cityIndex, areaIndex);
    
                //城市 change事件下要重新更新数据
                $('#city1').on('change', function () {
                    // selectedIndex是select标签的原生属性,可以保存被选中的选项的索引值
                    cityIndex = this.selectedIndex;
                    // 根据城市初始化对应的区域
                    initArea(cityIndex);
                    // 默认把城市下面的区域归零,默认选择第一个区。
                    areaIndex = 0;
                    changeSchools(cityIndex, areaIndex);
    
                })
                // 区域change下要更新数据
                $('#city2').on('change', function () {
                    // selectedIndex是select标签的原生属性,可以保存被选中的选项的索引值
                    cityIndex = $('#city1>option:selected').index();
                    // console.log(cityIndex,areaIndex);
                    areaIndex = this.selectedIndex;
                    changeSchools(cityIndex, areaIndex);
    
                })
    
                function changeSchools(cityIndex, areaIndex) {
                    // 城市和区域的初始化
                    $('.s-city').html(result.data[cityIndex].cityName + "," + result.data[cityIndex].areas[areaIndex].areaName);
    
                    // 学校的初始化
                    str = '';
                    result.data[cityIndex].areas[areaIndex].schools.forEach(function (item, index) {
                        str += `<li class="s-list clearfix">
                            <span class="s-number fl">${index + 1}</span>
                            <div class="s-info fr">
                                <h3 class="f14">${item.schoolName}</h3>
                                <p>校区编号:${item.id}</p>
                                <p>联系电话:${item.tel}</p>
                                <p>校区地址:${item.address}</p>
                            </div>
                        </li>`
                    })
                    $('.s-all').html(str);
                }
                // 根据城市初始化对应的区域
                function initArea (cityIndex) {
                    let str = '';
                    result.data[cityIndex].areas.forEach(function (item, index) {
                        str += `<option value="${item.areaName}">${item.areaName}</option>`
                    })
                    $('#city2').html(str);
                }
            }, "json")


    点赞


    1
    保存到:

    相关文章

    发表评论:

    ◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。

    Top