如何使用单选按钮更改事件提交AJAX表单
本文关键字:提交 AJAX 表单 事件 何使用 单选按钮 | 更新日期: 2023-09-27 18:22:17
我有一个AJAX表单&我想在单选按钮更改事件上提交它。
AJAX形式:
@using (Ajax.BeginForm("Vote", "Rate", null ,
new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET",
OnFailure = "searchFailed",
LoadingElementId = "ajax-loader",
UpdateTargetId = "searchresults",
},new { id = "voteForm" }))
{
<input type="radio" name="Stars" value="1">
<input type="radio" name="Stars" value="2">
<input type="radio" name="Stars" value="3">
}
我使用了以下代码,但它不起作用。
$("#voteForm").ajaxSubmit({ url: '/Vote/Vote', type: 'get' });
试试这个:
<script type="text/javascript">
$(function () {
$("input[name='Stars']").change(function() {
$("#voteForm").ajaxSubmit({ url: '/Vote/Vote', type: 'get' });
});
});
</script>
@Babul-Mirdha Ajax.BeginForm
是一种运行良好的机制,但自定义与标准非常不同的特定提交行为会让人头疼。我想现在你知道了。
每当我(以及许多其他开发人员也会这么说)需要开发一些自定义行为时,我都会使用基本的Jquery。像这样:
在您的控制器中:
public JsonResult Vote(YourModel model)
{
// do something:
// model.Stars
return Json(new { message = "Success" }, JsonRequestBehavior.AllowGet);
}
您的型号:
public class YourModel
{
// ...
public int Stars { get; set; }
}
你的观点:
<script type="text/javascript">
$(function () {
$("#voteForm input[name=Stars]").change(function () {
$.ajax({
url: '/Home/Vote',
type: 'GET',
data: $("form#voteForm").serialize(),
dataType: 'json',
success: function (data) {
alert(data.message);
},
error: function (jq, message) {
alert(message);
}
});
});
});
</script>
<form id="voteForm" action="@Url.Action("Vote")">
<input type="radio" name="Stars" value="1" checked="checked"/>
<input type="radio" name="Stars" value="2" />
<input type="radio" name="Stars" value="3" />
<input type="text" name="Tbx" />
</form>
这样你就可以完全控制自己的行为。