Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 处理选定项目事件的ASP.NET MVC列表框_Jquery_Asp.net Mvc - Fatal编程技术网

Jquery 处理选定项目事件的ASP.NET MVC列表框

Jquery 处理选定项目事件的ASP.NET MVC列表框,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我正在视图中使用HTML.ListBox,如下所示: <%= Html.ListBox("projects", Model.Projects) %> 然后返回控制器以传递到强类型视图 我的问题是,如何监视选定项事件?当用户进行选择和/或取消选择时,我需要能够执行一些操作 谢谢。如果您熟悉jQuery,您甚至可以捕获更改并提交表单: $('#projects').change(function () { $(this).parents('form').submit(); }

我正在视图中使用HTML.ListBox,如下所示:

<%= Html.ListBox("projects", Model.Projects)  %>
然后返回控制器以传递到强类型视图

我的问题是,如何监视选定项事件?当用户进行选择和/或取消选择时,我需要能够执行一些操作


谢谢。

如果您熟悉jQuery,您甚至可以捕获更改并提交表单:

$('#projects').change(function () {
    $(this).parents('form').submit();
});
或者,您可以使用向操作提交一些数据

$('#projects').change(function () {
    $.ajax({
        type: 'POST',
        url: '<%=Url.Action("<action>", "<controller>")%>',
            data: { id: $('#projects').val() },
            dataType: 'json',
        complete: function(XMLHttpRequest, textStatus) {
            // Do something here.
            }
        });
});
更新:

由于您正在使用,您可以捕获onItemClick偶数并调用控制器的操作,传递所选选项的值和状态已选中/未选中:

$("#projects").dropdownchecklist({
    emptyText: "select something",
    width: 150,
    onItemClick: function(checkbox, selector){
        var isChecked = checkbox.prop("checked");
        alert("element id: " + checkbox.prop("value"));

        $.ajax({
        type: 'POST',
        url: '<%=Url.Action("<action>", "<controller>")%>',
            data: { selecteId: checkbox.prop("value"), isChecked: isChecked },
            dataType: 'json',
        complete: function(XMLHttpRequest, textStatus) {
            // Do something here.
            }
        });
   }
});

您可以看看这个。

谢谢,listbox实际上包含在一个Jquery控件中。要访问所需的值,请执行以下操作:单击:函数复选框,选择符{alertvalue+checkbox.val+,已选中:+checkbox.propchecked。我如何使用此方法将这两个值传递回控制器?感谢您的帮助。如果这是一个简单的问题,我深表歉意,我使用JQuery的第一天:@Darren Young:不用担心。当用户从l中选择一个元素时,您想提交表单吗ist或您很乐意执行ajax调用?@@Darren Young:另外,您是否使用某种jquery插件包装您的列表框并将其转换为复选框列表?@LeftyX,谢谢。是的,jquery插件包装任何实际上是HTML select控件的控件。我前面评论中的代码显示了如何从中获取数据。实际上当用户检查列表中的项目时,它将调用数据库并更新视图中的其他列表。甚至可以只更新同一视图中的其他控件吗?谢谢
$("#projects").dropdownchecklist({
    emptyText: "select something",
    width: 150,
    onItemClick: function(checkbox, selector){
        var isChecked = checkbox.prop("checked");
        alert("element id: " + checkbox.prop("value"));

        $.ajax({
        type: 'POST',
        url: '<%=Url.Action("<action>", "<controller>")%>',
            data: { selecteId: checkbox.prop("value"), isChecked: isChecked },
            dataType: 'json',
        complete: function(XMLHttpRequest, textStatus) {
            // Do something here.
            }
        });
   }
});