You need to enable JavaScript to run this app. WordPress中结合jQuery与scrollIntoView实现表单提交后自动滚动到结果展示区
优惠活动
大模型
产品
解决方案
定价
更多

WordPress中结合jQuery与scrollIntoView实现表单提交后自动滚动到结果展示区

WordPress 检索表单提交后定位到结果区块的实现

项目场景说明

在WordPress项目中搭建了检索功能表单,表单校验通过后会触发页面重载,最终将检索结果展示在页面底部。当前需要实现的效果是:页面加载完成后,自动触发平滑滚动,定位到指定ID的检索结果区块位置。

已调研的实现方案

查阅技术文档后确认,可通过原生scrollIntoView()方法实现该滚动效果,基础调用代码示例为:

let target = document.getElementById("target");
target.scrollIntoView({ block: "start", behavior: "smooth" });

其中绑定滚动目标的id="target",对应表单校验通过后承载检索结果的区块,区块的结构参考如下:

<section id="target" class="search-results">
   // 区块业务代码
</section>

现有实现代码与疑问

目前已经编写完成表单提交的校验逻辑,校验分支通过后会触发页面重载,同时切换搜索按钮的加载状态与正常显示状态。现在不确定将滚动逻辑嵌入现有提交流程是否能够正常生效,当前的完整实现代码如下:

jQuery('form.searchform').on("submit", function(e) {
    var start_time = (jQuery(this).find("#address_start_time").val() != undefined) ? jQuery(this).find("#address_start_time").val() : jQuery(this).find("#start_time").val();
    var start_date = parseDate(jQuery(this).find("#datepicker-adress").val() + " " + start_time);
    var end_time = (jQuery(this).find("#address_end_time").val() != undefined) ? jQuery(this).find("#address_end_time").val() : jQuery(this).find("#end_time").val();
    var end_date = parseDate(jQuery(this).find("#datepicker-adress1").val() + " " + end_time);
    var today = new Date();
    // console.log(start_date);
    // console.log(end_date);
    // console.log(today);
    if(start_date < today){
        e.preventDefault();
        alert(ipkdatepicker.error_on_start_date);
    } else if(end_date < today){
        e.preventDefault();
        alert(ipkdatepicker.error_on_end_date);
    } else if(end_date < start_date){
        e.preventDefault();
        alert(ipkdatepicker.error_on_end_date_from_start);
    } else {
        jQuery(this).find('button[alt="Search"]').css("display","none");
        jQuery(this).find('button.searchloader').css("display","inline-block");
        jQuery(window).load(function() {
            jQuery('form.searchform').find('button[alt="Search"]').css("display","inline-block");
            jQuery('form.searchform').find('button.searchloader').css("display","none");
            let target = document.getElementById("target");
            target.scrollIntoView({ block: "start", behavior: "smooth" });
        });
    }
})

内容的提问来源于stack exchange,提问作者Nocktis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 06:27:01