我看了几个类似的问题,但我无法让它发挥作用。
我在表单中有一些单选按钮。我没有选择选项并单击提交按钮,而是在用户单击单选按钮时提交表单。
所以我隐藏了提交按钮并放置了一个模拟按钮点击的javascript函数(我也尝试使用按钮点击它,但这似乎不是问题)。
在我的观点中,我有:
<script type="text/javascript" src="/Scripts/jquery-1.9.1/jquery-1.9.1.min.js" ></script>
<script type="text/javascript" src="/Scripts/jquery-1.9.1/jquery.unobtrusive-ajax.min.js"></script>
<script type="text/javascript">
function change() {
$('#buttonradio').click();
}
</script>
<h2>Dashboard</h2>
<div class="Dashboard" id="itemsDshBrd" style="overflow:auto;height:97%;">
<div id="DshBrdRadioGroup" style="float:right;font-size:small">
<% using (Ajax.BeginForm("Index", "DshBrd", new { value = 1 }, new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "stations" })) { %>
<input class="radioclass" id="r1" name="radiogroup" type="radio" value="1" onclick="change()" checked/> A
<input class="radioclass" id="r2" name="radiogroup" type="radio" value="2" onclick="change()"/> B
<input class="radioclass" id="r3" name="radiogroup" type="radio" value="3" onclick="change()"/> C
<input class="radioclass" id="r4" name="radiogroup" type="radio" value="4" onclick="change()"/> D
<input id="buttonradio" type="submit" value="Submit" style="visibility:hidden"/>
<% } %>
</div>
<div id="stations">
<% Html.RenderPartial("~/Views/DshBrd/Stations.ascx"); %>
</div>
</div>
*我知道我发送的值= 1。
在我的控制器中我有:
[HttpPost]
public ActionResult Index(int value)
{
if (Request.IsAjaxRequest())
{
return PartialView("~/Views/DshBrd/Stations.aspx");
}
return View("~/Views/DshBrd/Index.aspx");
}
Request.IsAjaxRequest()
永远不会成真。
我的Web.Config也行:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
有什么想法吗?
答案 0 :(得分:1)
我认为你没有正确提交表格。
尝试完全删除提交按钮,并将更改代码替换为:
function change() {
$("#DshBrdRadioGroup form").submit();
}
这听起来像你不引人注目的ajax无法正常工作。请检查以下内容:
答案 1 :(得分:1)
我认为你的模块绑定器有这个问题。在您的操作中将变量名称值更改为 radiogroup 。
答案 2 :(得分:0)
首先,您正试图通过AJAX从您所描述的内容中定期发帖。它永远不会是 true 。
所以,你需要使用类似http://malsup.com/jquery/form/的东西,这样可以很容易地从AJAX中完成。
使用AJAX进行提交后,您实际上不必在每个单选按钮元素中使用onclick
。我会像下面这样做,假设那些单选按钮是使用类 radioclass 的唯一单选按钮:
$('.radioclass').click(function () {
$(this).parents('form:first').trigger('submit');
});