选择的多选小部件在MVC 4中的表单提交中被清除

时间:2013-10-01 10:22:42

标签: html asp.net-mvc jquery-chosen

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

@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)。

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

1 个答案:

答案 0 :(得分: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");
相关问题