Jquery 处理选定项目事件的ASP.NET MVC列表框
我正在视图中使用HTML.ListBox,如下所示: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("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.
}
});
}
});