提交表单时保持位置的Javascript

时间:2017-06-18 18:39:00

标签: javascript php html

我的网页页面中有表单(更多页面),当php刷新页面时,我需要javascript来保持表单的滚动位置。

我试过了:

<input type="submit" onclick="myunction()" value="Send" name="submit" class="submitsub">

<script type="text/javascript">

$(window).scroll(function() {
  sessionStorage.scrollTop = $(this).scrollTop();
});

$(document).ready(function() {
  if (sessionStorage.scrollTop != "undefined") {
    $(window).scrollTop(sessionStorage.scrollTop);
  }
});


function myunction(){
    $("form").submit();
}
</script>

但是这个脚本总是将位置发送到另一个页面,因此页面滚动而不点击按钮。

1 个答案:

答案 0 :(得分:0)

因为您的代码没有检查以阻止它在页面上。

$(document).ready(function() {
  if (window.location.href === 'urlWhereYouWantItToRun' && sessionStorage.scrollTop != "undefined") {
    $(window).scrollTop(sessionStorage.scrollTop);
  }
});

备用方法可以是在新页面加载时从sessionStorage中删除值。

您可以删除页面加载时的值:

window.onload = function () {
 delete sessionStorage.scrollTop;
}

所以,总结所有方法:

// Page 1
$(document).ready(function () {
    if (window.location.href === 'urlWhereYouWantItToRun' && sessionStorage.scrollTop != "undefined") {
        $(window).scrollTop(sessionStorage.scrollTop);
    }
});


// Page 2, and not on page 1
window.onload = function () {
    delete sessionStorage.scrollTop;
};

window.onbeforeunload = function () {
    delete sessionStorage.scrollTop;
    return;
}