You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce中使用jQuery无法隐藏账单表单元素及对应标签问题

代码问题排查及修复方案
  • 事件绑定的选择器缺失id标识符#,且下拉选择框优先使用change事件保证触发稳定性
  • 选择器内错误使用HTML转义实体"代替原生双引号,导致元素匹配失败
  • 存在多处选择器拼写错误:label[for="billing_complex_address_inside]缺失闭合双引号,else分支下的#billing_complex_complex_name多写了重复的complex_前缀
  • WooCommerce账单字段默认包裹在form-row类的父容器内,仅隐藏input和label会残留容器占位间隙,建议直接隐藏整行容器

修正后可运行代码

jQuery(document).ready(function($){
  // 下拉框绑定change事件,选择器补全#标识
  $(document).on('change', '#billing_condition', function() {
    mySecFunc();
  })

  function mySecFunc() {
    if($('#billing_condition').val() == 'house'){
      // 隐藏小区相关字段整行
      $('.form-row:has(#billing_complex_name)').hide();
      $('.form-row:has(#billing_complex_address)').hide();
      $('.form-row:has(#billing_complex_address_inside)').hide();
      // 显示常规地址字段
      $('.form-row:has(#billing_address_1)').show();
    }else{
      // 隐藏常规地址字段整行
      $('.form-row:has(#billing_address_1)').hide();
      // 显示小区相关字段
      $('.form-row:has(#billing_complex_name)').show();
      $('.form-row:has(#billing_complex_address)').show();
      $('.form-row:has(#billing_complex_address_inside)').show();
    }
  }
  // 页面初始化时执行一次,匹配下拉框初始选中值
  mySecFunc();
})

如果主题没有使用WooCommerce标准的form-row容器,可换回单独隐藏label和input的写法,只需修正原代码中的选择器拼写和转义错误即可正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:36:08