Elementor表单提交后根据用户选择展示对应区块的技术问询
修复Elementor表单提交后根据答案显示区块的代码
你的代码存在两个核心问题:
- 语法错误:
if语句括号闭合错误,且将按钮点击事件嵌套在条件判断里,逻辑完全混乱 - 逻辑偏差:需求是表单提交后根据答案展示区块,但你监听的是下拉框的change事件加按钮点击,不符合实际场景
以下是修正后的代码:
jQuery(document).ready(function() { // 默认隐藏目标区块 jQuery("#sect1").hide(); // 监听Elementor表单提交事件(可替换为你的表单具体ID,比如#elementor-form-123) jQuery("form.elementor-form").on("submit", function(e) { // 阻止表单默认跳转(如果不需要默认提交后的页面跳转,保留这行;需要的话注释掉) e.preventDefault(); // 获取行业选择框的选中值 var selectedIndustry = jQuery("#form-field-industry").val(); // 根据选中值控制区块显示 if (selectedIndustry === 'Carvin') { jQuery("#sect1").show(); } else { jQuery("#sect1").hide(); } // 如果需要保留Elementor表单的默认提交功能(比如发送邮件),取消下面这行注释 // this.submit(); }); });
关键说明
- 用
jQuery(document).ready()确保页面DOM加载完成后再执行代码,避免找不到目标元素 - 替换
form.elementor-form为你实际表单的选择器:可以通过浏览器开发者工具查看表单的ID,或者直接用Elementor表单设置里的专属ID - 如果需要Elementor表单完成默认提交流程(比如发送通知邮件),记得取消
this.submit();的注释,否则只会执行显示/隐藏逻辑,不会提交表单数据 - 确认
#sect1是你要控制显示的区块的正确ID
内容的提问来源于stack exchange,提问作者Joyce De Witte
相关产品推荐
相关产品推荐

