zoukankan      html  css  js  c++  java
  • 使用jquery Ajax异步刷新 下拉框

    一个下拉框

    <label>产品类型:</label>
            <select id="protype" name="protype" onchange="getNameList()">
                <option value="">--请选择--</option>
            </select>

    响应上一个下拉框的结果

    的另一个下拉框

    <label>产品名称:</label>
            <select id="proname" name="proname">
                <option value="">--请选择--</option>
            </select>

    引入jquery包

    <script src="~/Scripts/jquery-1.10.2.min.js"></script>

    异步刷新代码

    function getNameList() {
            var id = $('#protype').val();
            if (id === "") {
                $('#proname').html('');
                var options = '';
                options += '<option value="">--请选择--</option>';
                $('#proname').append(options);
                return;
            }
            var obj = { id: id };
            AjaxCall('/Home/GetProList', JSON.stringify(obj), 'POST').done(function (response) {
                if (response.length > 0) {
                    $('#proname').html('');
                    var options = '';
                    options += '<option value="">--请选择--</option>';
                    for (var i = 0; i < response.length; i++) {
                        options += '<option value="' + response[i].Value + '">' + response[i].Text + '</option>';
                    }
                    $('#proname').append(options);
    
                }
            }).fail(function (error) {
                $('#proname').html('');
                var options = '';
                options += '<option value="">--请选择--</option>';
                $('#proname').append(options);
            });
        }
        function AjaxCall(url, data, type) {
            return $.ajax({
                url: url,
                type: type ? type : 'GET',
                data: data,
                contentType: 'application/json'
            });

    后台响应代码

            /// <summary>
            /// 用于处理异步刷新下拉框
            /// </summary>
            /// <param name="id"></param>
            /// <returns></returns>
            [HttpPost]
            public ActionResult GetProList(string id)
            {
                List<SelectListItem> elems = null;
                if (string.IsNullOrEmpty(id))
                    elems = null;
                else
                {
                    string filePath = Server.MapPath("/App_Data/SimpleData.xml");
                    string filter = string.Format("/DD/DItems[@DValue='{0}']", id);
                    elems = GetListByXpath(filePath, filter);
                }
                return Json(elems, JsonRequestBehavior.AllowGet);
            }

    总结 :

    重点在于使用ajax异步post成功之后,处理服务器返回来的数据

  • 相关阅读:
    创业感言:我的个性,我的情绪,我的表情(转)
    创业难,发掘机会更难:发掘创业良机的七种方式
    我也想有个梦想
    打造你想要的形象,帮助你树立神奇的领导魅力
    游窦圌山有感
    态度决定你的人生高度
    磨练召唤成功的力量,善于从损失中看到价值
    赚钱八大定律成就你的富翁梦
    增强你的大脑——20个不该忽视的记忆窍门
    无言的爱
  • 原文地址:https://www.cnblogs.com/c-supreme/p/8687437.html
Copyright © 2011-2022 走看看