Полный текст: я хочу отключить кнопку отправки в отправке формы, чтобы предотвратить многократную отправку. Одной из проблем является форма ASP.Net MVC Ajax-форма - <% using (Ajax.BeginForm ...%>), поэтому ее событие javascript onSubmit уже установлено, и поэтому я не могу сделать это во время этого события. способ добавить к событию submit с помощью jQuery? Мои тесты показывают, что $ ("# form"). submit (...) заменяет событие submit и, таким образом, убивает материал MVC для ajaxy .
Итак, что я сделал, так это прикрепил код отключения кнопки к событию нажатия кнопки отправки. Это работает нормально ... только это убивает способности отправки кнопки (ничего не происходит, кроме кнопки отключается). Я пошел дальше и использовал jQuery для отправки формы из события click. Это ничего не значит, ответ ajax возвращается в виде загруженного файла, я полагаю, потому что материал ajax MVC снова засорился. Вот где я нахожусь:
$("#submitButton").click(function ()
{
var $button = $(this);
$button.parent().submit();
$button.attr("disabled", "disabled");
});
Кто-нибудь знает обходной путь?
Edit:
Таким образом, оказывается, что это на самом деле может быть ошибка в MVC. Изначально у меня было:
<% using (Ajax.BeginForm("CreateAsync", "Account", new AjaxOptions
{
HttpMethod = "POST",
OnComplete = "create_Complete",
OnBegin = "create_Begin"
},
new { id = "ajaxForm" }))
{ %>
<!-- form stuff -->
<% } %>
$("#ajaxForm").submit(function() {
$(":submit", this).attr("disabled", "disabled");
});
Обратите внимание, что я устанавливал идентификатор формы и привязывал к нему дескриптор jQuery через этот идентификатор. Похоже, тот простой факт, что я устанавливаю идентификатор формы, вызывает все проблемы. Фактически, я могу прервать отправку формы без какого-либо вмешательства jQuery, если я установлю идентификатор формы. Так что это работает полностью как рекламируется:
<% using (Ajax.BeginForm("CreateAsync", "Account", new AjaxOptions
{
HttpMethod = "POST",
OnComplete = "create_Complete",
OnBegin = "create_Begin"
}))
{ %>
<!-- form stuff -->
<% } %>
$("form").submit(function() {
$(":submit", this).attr("disabled", "disabled");
});