我已经尝试了this问题答案中报告的所有选项。 我有这个:
$('form').submit(function (e) {
e.preventDefault();
e.stopImmediatePropagation();
if ($(this).valid()) {
var postingWindow = $("#postingDialogWindow").data("kendoWindow");
postingWindow.title("Posting Client Request...");
postingWindow.open();
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize()
})
.success(function (result) {
if (result.success) {
window.alerts.info(result.message, true);
window.location.replace(result.redirecturl);
}
else {
window.alerts.error(result.error);
}
})
.fail(function (result) {
//window.alerts.error(result);
var result = $.parseJSON(result.responseText);
window.alerts.error(result.errorMessage);
})
.always(function (data) {
postingWindow.close();
});
}
return false;
});
但我仍然有两次提交的ajax表格。请帮忙。我的斗智尽头。
编辑:添加了表单的html:
@using (Html.BeginForm("Create", "ClientWarehouseRequest", FormMethod.Post, new { @class = "form-horizontal" }))
{
<!--...whole lotta input fields here...-->
<div class="buttons-wrap">
<input type="hidden" name="SubmitButtonValue" id="SubmitButtonValue" />
<input class="k-button" type="submit" value="Post" name="SubmitButton" />
@Html.ActionLink("Cancel", "Index", controllerName: null, routeValues: null, htmlAttributes: new { @class = "k-button", style = "vertical-align: bottom;" })
<input class="k-button" type="submit" value="Save" name="SubmitButton" />
</div>
}
编辑2: 我已尝试按this新问题中的解释重新处理该方法,但后来我遇到的问题是表单是由浏览器提交的,而不是ajax。
请帮忙。我不再是一个软件工匠了!