有没有办法可以使用 jQuery 中的 .submit 事件监听器从操作中获取返回值? 我有一个问题,当操作完成时,它返回一个 JSON 文件,而我的浏览器导航到一个空页面,只显示返回的 JSON。我不希望这种情况发生,我希望能够读取 JSON 结果并根据它决定要做什么。
这是我的概念验证: 查看:
@using (Html.BeginForm("SubmitTest", "DMS", FormMethod.Post, htmlAttributes: new { id = "formId" }))
{
<input type="submit" value="Sumbit" />
}
Controller :
public JsonResult SubmitTest()
{
return Json("Done");
}
脚本:
$(document).ready(function () {
$("formId").submit(function () {
alert("Submitted");
});
});
最佳答案
您可以添加event.preventDefault
或return false
来防止发生默认事件。所以它不会导航到空白页面。
$(document).ready(function () {
$("formId").submit(function () {
alert("Submitted");
return false;
});
});
编辑:
如果您想获得响应,您需要发出 ajax 请求并从字段中获取表单数据。您无法使用 submit
函数获得响应。
$(document).ready(function () {
$("formId").submit(function () {
/// make an AJAX request
$.post(
$(this).attr('action'), //// action url
$(this).serialize(), //// serialize form fields
function(json) {
alert(json);/// json response
}, 'json');
return false; /// prevent navigation
});
});
关于javascript - 在 ASP.NET MVC 表单上提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41425333/