Я разрабатываю приложение, которое использует JQuery для перехвата представлений моей формы, чтобы вместо этого подать Ajax. Все идет нормально! Все отлично работает. Если у клиента нет JS, приложение продолжает работать безупречно.JQuery не перехватывает отправку формы - Asp.net Mvc & Fancybox
Ну, сегодня я создал новую форму, но JQuery не перехватывает представление. Это правда, что я немного изменился, но все же. Он должен работать.
У меня есть простой PartialView с формой, диапазоном и двумя кнопками (NO (кнопка) & YES (submit)). Я использую RenderPartial («MyPartial») в DIV и плагин FancyBox, чтобы отобразить его как модальный. В зависимости от того, какая ссылка кликнет, чтобы показать модальную, я изменяю действие (отчет спама или удалить элемент) формы и диапазона с определенным сообщением. Как «причудливое» сообщение подтверждения!
Снова, пока все хорошо. Я изменяю действие формы и работает (используя alert (form.attr (action)), я изменяю диапазон с правильным сообщением, и он работает, но когда я нажимаю кнопку, чтобы отправить форму (YES), она идет прямо и я сделать нормальный запрос, а не запрос Ajax, и я хотел
Это форма:.
<form id="dialogForm" action="" method="post">
<div class="form_item_button">
<span id="dialogQuestion" style="color: Black;"></span>
<button id="btDialogNo" type="button" value="button" class="btn">No</button>
<button id="btDialogYes" type="submit" value="Submit" class="btn">Yes</button>
</div>
</form>
и это скрипт для перехвата отправки формы:
$(document).ready(function() {
var theForm = $("#dialogForm");
// I CHECK IF THE ACTION WAS SET PROPERLY
// MY TESTS SHOW ME THAT THE ACTION IS OK!
alert(alert(theForm).attr("action"));
theForm.submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
data: theForm.serialize(),
url: theForm.attr("action"),
dataType: "json",
success: function(json) {
alert(json.Status);
},
error: function() {
alert('An error occurred while processing your request. Please try again.');
}
});
});
Любые идеи? Я потерял весь свой день, пытаясь это исправить !! :(
Thanks
Попробуйте 'return false;' сразу после $ .ajax ({}) ;? –
Я не работал, ребята! Что странно ... потому что это точно то же самое на моем сайте. :(Я не знаю, что делать ... серьезно .. –
Что вы можете получить, если добавить предупреждение сразу после фактического обработчика событий? – Anthony