Данные формы POST без отправки

0

У меня есть одна форма, которая содержит много полей данных. В форме есть кнопка, которая перенаправляет вас на другую страницу, чтобы заполнить дополнительную информацию. По завершении заполнения дополнительной информации вы вернетесь к исходной форме. Я хотел бы иметь возможность размещать частично заполненную форму, не отправляя ее, поэтому я могу сохранить ее в сеансе.

Можно ли публиковать данные формы без прохождения URL-адреса действия, указанного в форме?

Теги:
asp.net-mvc

3 ответа

2
Лучший ответ

Вы можете добавить событие клика к своей ссылке или кнопке (которая берет пользователя во вторую часть формы/виджета), и вы можете отправить форму с помощью ajax в свой метод действий, и там вы можете ее сохранить.

Ваш js-код должен быть чем-то вроде этого

$(function(){

  $("#idOfNextLinkOrButton").click(function(e){

    e.preventDefault();
    var _form=$(this).closest("form");  //Get the form somehave

    $.post("@Url.Action("TempSave","Home")",_form.serialize(),function(result){
       //do something with the result
    });

  });

});
  • 0
    +1, но учтите поведение, если Ajax недоступен в браузере (JavaScript отключен). Иметь изящный пользовательский опыт, даже если он просто показывает страницу, указывающую на необходимость JavaScript.
  • 0
    @Shyju Вау, это было довольно понятно. Должен был понять это. Спасибо за помощь!
Показать ещё 1 комментарий
0

Вы можете просто отправить его на тот же URL-адрес, но, например, содержащий скрытое поле SurveyCompleted=false, которое вы установили в true когда находитесь на последней странице. Только когда true, вход сохраняется, иначе вы просто сохраните его в своем сеансе.

0

Вы можете публиковать сообщения на другом URL-адресе, используя Javascript Ajax при нажатии кнопки кнопки/отправки.

Примечание. Убедитесь, что, когда вы нажимаете кнопку внутри формы, поведение по умолчанию должно быть отправлено, но вы можете это предотвратить.

в jQuery нам нравится

$('#btnSend').click(function(e){
    e.preventDefault();
    $.post('someurl',data,function(result){});
});

Аргумент данных может быть

data=$('#yourform').serialize(); // sends the whole form data

 or
data=JSON.stingify(someJavaScriptObject); // you can set and send anydata

Ещё вопросы

Сообщество Overcoder
Наверх
Меню