2014-12-18 2 views
0

제출할 때 데이터를 보내고 페이지가 다시로드 될 때 사용자가 페이지의 동일한 위치로 되돌아 와서 javascript 또는 jquery를 사용하여 양식을 제출하는 양식을 작성하려고합니다.양식을 제출 한 다음 브라우저를 페이지의 동일한 위치로 되돌리려면 어떻게합니까?

+6

아약스를 사용하여 양식을 제출하고 전혀 페이지를 떠나지 않는 방법은 어떻습니까? – PeterKA

+0

사이트가 Liferay에 의해 운영되고 있기 때문에 불행히도 저에게는 옵션이 아닙니다. – user3897842

+0

자바 스크립트를 변경/추가 할 수있는 권한이있는 경우 기본 양식 제출을 중단하고 아약스 제출을 시작할 수 있습니다. –

답변

3

테스트되지 않은,하지만 당신의 라인을 따라 뭔가 할 것입니다 : 모든

$(function() { 
    var lst = localStorage.getItem('lastScrollTop'); 
    if(lst !== null) { 
     $(window).scrollTop(lst); 
     localStorage.removeItem('lastScrollTop'); 
    } 
    $("form").on('submit', function() { 
     //use whatever persistence method you'd like, I'm using HTML5 localStorage for brevity 
     localStorage.setItem('lastScrollTop', $(window).scrollTop()); 
    }); 
}); 
+1

대신에 정확한 sessionStorage 사용 –

0

첫째, 붙박이 방법을 많이 가지고로 JQuery와 사용하는 것이 훨씬 낫다. 일반적으로 .ajax as it is very flexible을 사용하며 GET 및 POST 데이터를 매우 빨리 사용할 수 있습니다.

지금 당신은 다음 Ajax를 사용하여 제출, 기본 제출을 방지 할 수 있습니다 .. 그것을 수행하는 방법에

$.ajax({ 
    url : "AJAX_POST_URL", 
    type: "POST", 
    data : formData, //The best way to formulate is using JSON and server to accept it 
    success: function(data, textStatus, jqXHR) 
    { 
     //data - response from server 
    }, 
    error: function (jqXHR, textStatus, errorThrown) 
    { 

    } 
}); 
0

오고, 그래서 당신은 페이지를 두지 마십시오.

$(document).ready(function(){ 
    // your form 
    var $myForm = $('form'); 

    $myForm.on('submit', function(e){ 
     // stops the from from submitting and loading a new page. 
     e.preventDefault(); 

     // use jQuery post to post the form fields to the default from action 
     $.post($myForm.attr('action'), $myForm.serialize(), function(data){ 
      console.log(data); 
     }); 
    }); 
}); 
관련 문제