2013-09-25 3 views
0

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

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

+2

Я не понимаю разницу между «пост» и «представить». Что конкретно у вас есть и что вы пытаетесь сделать? –

ответ

2

Вы можете добавить событие click к вашей ссылке или кнопке (что берет пользователя во вторую часть формы/виджет), и вы можете отправить форму с помощью 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 Wow, который был на самом деле довольно сам объяснительный. Должен был понять это. Спасибо за помощь! – Will

+0

@ Добро пожаловать! Рад, что смог помочь :) – Shyju

0

Вы можете просто разместить его по тому же адресу, но, например, с скрытым полем 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 
Смежные вопросы