0

我使用以下 html 在我的 MVC 视图上使用选择的多选小部件。

@Html.DropDownListFor(m => m.Branch, new SelectList(ViewBag.Branches, "Value", "Text"), new { @class = "chzn-select-deselect", data_placeholder = "Select Branch", @multiple = "true" })

我在输入类型提交的视图上有刷新图标;点击我有以下代码。

$("#dbRefresh").click(function (e) {
        e.preventDefault();
        var Form = $("form[id='FrmDashBoard']");
        Form.validate();
        if (Form.valid()) {
            Form.find('ul').empty();
            var fromDate = $("#FromDate").val();
            var toDate = $("#ToDate").val();
            var BranchList = $("#Branch").val();//chosen multiselect widget                
            var BranchString = "";
            if (BranchList != null)
                $.each(BranchList, function (index, item) {
                    BranchString += item + ",";
                });

            if (BranchString.length > 0)
                BranchString = BranchString.slice(0, -1);
            $.ajax({
                type: "POST",
                url: '@Url.Action("SetDashBord_DateFilter", "Home")',
                dataType: "json",
                data: { FromDate: fromDate, ToDate: toDate, Branches: BranchString }
            });
            DisplayPOXOrderStatistics(fromDate, toDate, BranchString);
            DisplayPOXCompletedOrdersData(fromDate, toDate, BranchString);
            DisplayHSTOrderStatisticsData(fromDate, toDate, BranchString);
            DisplayPOXCompletedOrderPieChart(fromDate, toDate, BranchString);
            DisplayCurrentYearlyTrends(BranchString);
        }
        $("#Branch").trigger("liszt:updated");
        return false;
    });

在上面调用的所有函数中,只进行 ajax 调用和 onsuccess,其中更新了该视图中的 html 的某些部分(某些 div 元素的内部 html)。

我选择多选分支时遇到的问题是,当我单击刷新按钮时;ul 中具有 chzn-choices 类的所有 li 元素都将被清除。因为选择的小部件在屏幕上显示为粗线,即由于 li 元素删除,ul 元素的高度设置为 0。有人可以建议我选择的小部件出了什么问题吗?

4

1 回答 1

0

我弄错了。在刷新图标的单击事件中,我正在清除表单中的 ul 元素。这也清除了我选择的小部件 ul。我修改了刷新按钮单击事件以删除语句

Form.find('ul').empty();

这用于清除以前在表单上显示的所有错误消息并继续使用有效的用户输入。现在我使用以下代码来删除应用于控件的错误类,而不是清除 ul;以便从验证摘要中删除错误消息。

$('.input-validation-error')
           .removeClass('input-validation-error');
$(".validation-summary-errors")
.removeClass("validation-summary-errors")
.addClass("validation-summary-valid");
于 2013-10-02T09:54:24.530 回答