我正在寻找最优雅的方式来解析我的表单(使用jQuery)。
你是怎么做到的?
答案 0 :(得分:12)
这是我的解决方案(我认为它是一个Progressive enhancement解决方案),只使用jQuery而没有任何插件:
var form = $('form#YourFormId');
$(':submit', form).click(function (event) {
event.preventDefault();
$.post(form.attr('action'), form.serialize(),
function(data, status) {
if(status == 'success') {
// your code here
}
}
);
});
<强>更新:强>
如果你的POST回复是“HTML with form”,那么试试这个:
function ajaxifyForm(form) {
$(':submit', form).click(function (event) {
event.preventDefault();
$.post(form.attr('action'), form.serialize(),
function(data, status) {
if(status == 'success') {
var newForm = $(data);
ajaxifyForm(newForm);
form.after(newForm).remove();
}
}
);
});
}
答案 1 :(得分:6)
Ajax化你的表单......这很模糊。
如果要异步提交表单,可以使用$ .post()发布到单独的控制器操作。
示例:
在视图中:
$.post('<%= Url.Action("DoAjaxCall") %>', $('form').serialize(),
function (data) {
alert(data.Message);
}
, "json");
在您的控制器中:
public ActionResult DoAjaxCall(YourModel model)
{
return Json(new { Message = "Your ajax call is working!" });
}
这就是我至少在某些形式中使用的内容。
P.S。:我在stackoverflow文本编辑器中写了这个,所以它没有真正测试过。但作为一个大纲,它应该有用。
答案 2 :(得分:0)
结帐JQuery plugins storage我相信你会发现你需要