У меня есть одна форма, которая содержит много полей данных. В форме есть кнопка, которая перенаправляет вас на другую страницу, чтобы заполнить дополнительную информацию. По завершении заполнения дополнительной информации вы вернетесь к исходной форме. Я хотел бы иметь возможность размещать частично заполненную форму, не отправляя ее, поэтому я могу сохранить ее в сеансе.
Можно ли публиковать данные формы без прохождения URL-адреса действия, указанного в форме?
Вы можете добавить событие клика к своей ссылке или кнопке (которая берет пользователя во вторую часть формы/виджета), и вы можете отправить форму с помощью 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
});
});
});
Вы можете просто отправить его на тот же URL-адрес, но, например, содержащий скрытое поле SurveyCompleted=false
, которое вы установили в true
когда находитесь на последней странице. Только когда true
, вход сохраняется, иначе вы просто сохраните его в своем сеансе.
Вы можете публиковать сообщения на другом 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