如何使用jquery ajax显示复选框列表中的项目
How to display items from checkbox list using jquery ajax
我正在尝试获取使用ajax和jquery选择的某个复选框的值。现在我已经在我的网站上列出了所有项目,但我想让用户选中复选框来获取所选项目。
控制器:
[HttpGet] public JsonResult getCategoryItems(){}
如何做到这一点?
视图:
@for (int i = 0; i < Model.CarsCount.Count(); i++)
{
var cars = Model.CarsCount.ElementAt(i);
<span class="label label-info">
@cars.CategoryName <span class="badge">@cars.CategoryCount</span
</span>
@Html.CheckBox(cars.CategoryName, cars.isChecked, new { id = "carsCheckbox"})
}
正如您所看到的,上面的代码只是计算要作为复选框列出的类别中的项目。不过,我只想让用户选中复选框,这样用户就可以通过从复选框中选中项目来获得项目。
private IEnumerable<CarViewModel> GetListOfCars()
{
var listOfcars = this.Data.cars.All()
.Select(t => new CarViewModel
{
Id = t.Id,
Title = t.Title,
Price = t.Price ,
FileName = t.FileName
});
return listOfcars;
}
您的问题有点令人困惑。但我假设当用户选择一个复选框时,您希望将该复选框的Id发送到您的操作方法,并获得一些响应,用于更新UI。
正如Stephen Muecke在评论中提到的,您当前的代码正在为复选框生成重复的Id值。表单元素不应该有重复的id。
假设HesViewModel
中的每个项目都有一个Id
属性(具有唯一值),我们将使用它发送到服务器。
当您呈现checkBox时,您可能会传入用于呈现css类的html属性(我们将用于jQuery选择,以侦听复选框状态的任何更改)和Id(我们将使用此唯一值发送到服务器)
for (int i = 0; i < Model.HesViewModels.Count(); i++)
{
var cars = Model.HesViewModels.ElementAt(i);
<span class="label label-info"> @cars.DetailRasonCode </span>
@Html.CheckBox(cars.CategoryName,
cars.isChecked, new { @class = "myCheck", id = cars.Id})
}
现在我们将有一些jQuery代码来监听复选框中的更改。当它被选中时,我们将使用Id属性值,并使用ajax将其发送到服务器。
$(function () {
$("input.myCheck").change(function(e) {
var _this = $(this);
if (_this.is(":checked")) {
var id = _this.attr("id");
alert(id);
//Let's make the Ajax call now
var url = "@Url.Action("getCategoryItems","Home")?id=" + id;
$.get(url, function () {
}).done(function (res) {
alert('response from server received');
console.log(res);
//Use the response as needed to update your UI
}).fail(function () {
alert("error");
});
}
});
});
当然,现在你的操作方法应该接受一个id作为参数
[HttpGet]
public JsonResult getCategoryItems(int id)
{
// to do : Send some useful data back.
return Json(new { Data :"Good"},JsonRequestBehaviour.AllowGet);
}
相关文章:
- 为非列表项目创建HTML实时搜索
- Codrops页面转换.如何创建单独的按钮,而不是列表项目的效果
- 如何允许我的访问者通过拖放来排列列表项目
- 输入中的ngBlur和该输入框中搜索的列表项目之间的问题
- 如果选中某个特定项目,则禁用所有复选框列表项目
- 所选下拉列表项目-调用/获取数据
- 如何将项目添加到重复列表和停止列表项目中,这些项目正由数据绑定更改
- 如何显示/隐藏列表项目中的项目MVVM剑道
- 如何通过输入项目的id或序列在列表项目的文本中查找值
- 隐藏列表项目在角离子中继器
- 更新列表项目类别单击
- 如何选择第三个列表项目与javascript
- 自动居中列表项目/图像100%页面高度
- Angular js嵌套控制器列表/项目
- Sencha触摸改变一个特定的列表项目的颜色
- 无法识别如果我已经点击了列表项目
- 点击语音气泡按顺序显示列表项目-在IE8中不工作
- Swig模板列表项目编号
- 在列表项目符号图像上指定单击事件
- 动态增加离子列表项目的高度嵌入文本区域内容的高度