【发布时间】:2016-05-04 19:12:01
【问题描述】:
我们有一个视图,其中有一个从模型属性设置的 CheckBox。
@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "get", InsertionMode = InsertionMode.Replace, UpdateTargetId = "content_list", Url = Url.Action("IndexList", "UsersAdmin", new { id = "formSearch" })))
{
.......(some code)
<div id="content_list">
@Html.CheckBoxFor(model => model.SearchAll)
</div>
<div id="content_list">
@Html.Partial("_List", Model)
</div>
}
根据第一次加载,复选框是否被选中。这很好用,没有问题。
如您所见,CheckBox 位于 Ajax 表单中,该表单刷新包含列表的部分列表。
在我们拥有的脚本中:
$("#SearchAll").change(function() {
jQuery('#SearchAll').closest('form').submit();
});
当 CheckBox 首次加载未选中时没有问题。我们选中它并取消选中它,总是会调用控制器操作。
问题是当我们第一次加载 CheckBox 时勾选了(真值)。在这种情况下,当我们取消选中复选框时,它会转到 javascript 更改功能,但不会调用控制器操作。当我们再次检查它时,它工作得很好。因此,在这种情况下,它仅在您选中复选框时有效,而在取消选中时无效..
我们已经尝试了很多东西,但看起来很奇怪......也许有人知道这个问题。
提前致谢。
【问题讨论】:
-
控制台中有什么? (浏览器中的 F12 按钮。)有任何错误吗?也请出示您的控制器
-
没有错误,事实上我已经检查过了,它在任何情况下都能通过。唯一的问题是当它首先被检查时,它在控制器(服务器)中什么都不做,但它执行 javascript 很好。
-
您的页面上只有一个表单吗?可能是
.closest('form')返回其他形式 -
是的,我们也尝试过点击提交按钮或直接调用表单。结果相同。就像我们从选中状态变为未选中状态时,它不想执行 Ajax 调用。
-
我们发现,即使是搜索按钮或表单中的任何按钮都停止工作,直到您再次选中复选框以选中。
标签: javascript asp.net-mvc checkbox