如何过滤多个级别的JQuery选择器?

时间:2013-12-31 08:04:15

标签: jquery json asp.net-mvc-3 jquery-ui asp.net-mvc-4

我有三种方法Json可以在四个级别进行过滤 第一:治理 第二:区域 第三名:位置 四:ATMId

和每个人的方法Json都是这样的

  public ActionResult FilteringArea(int Id)
    {
        var selectArea = db.Areas.Where(r => r.GovernateId == Id)
            .Select(r => new { label = r.Name, id = r.Id });

        return Json(selectArea, JsonRequestBehavior.AllowGet);

    }

我用来在我的视图中过滤这个功能

$('#AreaId').on('change', function () {
        getATM($(this).find('option:selected'));            
        getLocation($(this).find('option:selected'));           
    });

    var getATM = function (obj) {
        var $input = $(obj);
        var jsonData = {
            "AreaId": $input.val()
        };
        var addressData = JSON.stringify(jsonData);
        $.ajax({
            url: '/reports/FilteringATM',
            type: "POST",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            data: addressData,
            success: function (result) {
                $("#ATMId").find('option').remove().end();
                $("#ATMId").parent("div").find(".e-select-options").find("ul").find("li").remove().end();
                $("#ATMId").parent("div").find(".e-select-selected").text("-- ِAll--");
                $("#ATMId").append("<option value=''>-- All--</option>").end();
                for (i = 0; i < result.length; i++) {
                    if (i == 0) {
                        //$("#ATMId").parent("div").find(".e-select-selected").text(result[i].label);
                        //$("#ATMId").append("<option value=" + result[i].id + " selected='selected'>" + result[i].label + "</option>").end();
                    }
                    $("#ATMId").append("<option value=" + result[i].id + ">" + result[i].label + "</option>").end();
                    $("#ATMId").parent("div").find(".e-select-options").find("ul").append("<li class='undefined'>" + result[i].label + "</li>");
                }
            },
            error: function (result) {
                alert("failed");
            }
        });
    }

和getLocation($(this).find('option:selected'));与之前的功能完全一样 问题是当试图改变第一级(区域再次)第三级,所以第四级仍然没有改变所以任何想法解决这个问题?

0 个答案:

没有答案