У меня есть приложение .NET MVC. В одном из представлений есть модальный. Внутри модального есть форма.Ajax Form Submit w/preventDefault() всегда ударяет Успех
Несколько замечаний ...
- Поскольку форма находится внутри модального, я пытаюсь использовать немного Ajax, чтобы предотвратить форму делать представления по умолчанию.
- Форма сама находится внутри частичного представления
Я использую стандартные встроенные сценарии проверки MVC вместе с аннотациями данных в модели частичного представления. Пример:
[Display(Name = "Address")] [Required()] [StringLength(200)] public string Address { get; set; }
Это сценарий, я пытаюсь использовать, чтобы предотвратить подачу по умолчанию:
$(function() {
var frm = $('#form-accountprofileedit');
frm.submit(function (ev) {
ev.preventDefault();
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert('ok');
}
});
});
}
При нажатии кнопки передачи и обязательные поля пусты, я нужен отображаются сообщения о проверке. Но вместо этого появляется диалоговое окно «ok», указывающее, что проверка прошла успешно.
Что я делаю неправильно?
(я могу разместить больше кода, если потребности.)
EDIT ПОСЛЕ:
Вот форма (похудела):
@using (Html.BeginForm("AccountProfileEdit", "Account", FormMethod.Post, new { id = "form-accountprofileedit", @class = "full-form" }))
{
@Html.ValidationSummary(true)
@Html.CustomTextboxFor(model => model.Address)
<div style="text-align:right;">
<button type="submit" id="accountprofileedit-submit" name="accountprofileedit-submit" value="Edit Account" class="btn btn-primary" style="margin-left:5px;">Edit Account</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
</div>
}
Как выглядит ваш cshtml для создания только формы? На этот вопрос в настоящее время невозможно ответить. –
Я отредактировал OP с формой. Благодаря! –
Что такое CustomTextboxFor? Я не вижу подтверждения в вашей форме, только сводка валидации. Какой HTML-код создает этот CustomTextboxFor хелпер? – br4d