人。我整个上午一直在寻找我的问题的答案,但我没有任何成功。
这是问题 - >我有一个Ajax.BeginForm,它由一个复选框提交,使用jquery:
<% using (Ajax.BeginForm("Edit", "Products",
new AjaxOptions
{
HttpMethod = "POST",
LoadingElementId = "divLoading",
UpdateTargetId = "divProducts"
}))
{%>
<%: Html.HiddenFor(mod => Model.ProductId) %>
<%:Html.CheckBoxFor(mod => Model.ShowInactiveProducts,
new
{
onchange =
"jQuery('#ShowInactiveProducts').closest('form').submit(); return false;"
})%> <%:Products_Resource.ShowInactive%>
<%
}%>
此代码在Firefox中运行良好,但在Chrome中它会触发提交两次,其中第一次Request.IsAjaxRequest()返回true,第二次返回false。
我已经阅读了很多关于不引人注意的Ajax和东西的文章,但它们都没有为我工作。
有趣的是,当我使用输入类型提交时,它就像一个魅力......
有没有人知道我该怎么做才能解决这个问题?
谢谢!
答案 0 :(得分:1)
试试这个:删除复选框的onchange属性,并通过jquery:
执行<script>
$("#mycheckbox").change(function(){
"jQuery('#ShowInactiveProducts').closest('form').submit();
});
</script>
如果这不起作用,请尝试创建隐藏的提交按钮,并使复选框在更改时单击它。