Я думаю, что я переопределяю форму submit правильно. Однако вместо //HIDE FORM
в событии done
я получаю строку json POST (если кнопка отправки находится вне формы, она работает нормально, но мне она нужна в форме).Переопределить форму отправить событие с jQuery ajax сообщение
Форма
@using(Html.BeginForm("Action", "Controller", FormMethod.Post, new{})
{
//Form inputs
<button type="submit" class="button-submit">Submit</button>
}
Script (в Init()):
$('.button-submit').bind('submit', function(e) {
e.preventDefault();
if (formIsValid) {
$.ajax({
url: 'controller/action',
type: 'POST',
data: form.serialize()
}).done(function(data) {
if (data.success) {
//HIDE FORM
} else {
//error
}
});
}
return false;
});
В контроллере
[HttpPost]
public JsonResult Action(Model model)
{
if (ModelState.IsValid)
{
//Code...
}
return Json(model);
}
Как держать кнопку отправки в форме, используйте ajax post, и вернуться, чтобы скрыть форму и остаться на одной странице?
, а не обязательный '.bind ('submit' ...' Я бы сделал '.on ('click' ...'. Не совсем уверен, если это поможет :) :) – Mackan
Что именно вы спрашиваете? скрыть форму? –
@Mackan Полностью помогает. Один из вопросов, которые я поднял, сказал '.bind ('submit' ...'. Теперь я чувствую себя немым, но спасибо. Не могли бы вы опубликовать ответ и, возможно, почему это нужно? '.on ('click' ...'? – christo8989