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

如何根据数据库值在页面加载时立即显示对应元素

问题:页面加载时无法根据数据库值自动显示对应元素

我开发的页面里有两个元素,需要根据数据库返回的值控制显示:当值为picked时显示process元素(id为picked的<tr>),值为send时显示receipt number元素(id为send的<tr>)。

目前写的JS代码只有在修改输入框文本后才会触发显隐逻辑,页面加载完成时不会自动生效。现有代码如下:

现有JavaScript代码

$(function(){
  $('input:text').change(function(){
    if($(this).val() == "picked") {
      $("#picked").show();
      $("#send").hide();
    }
    else {
      $("#picked").hide();
      $("#send").show();
    }
  });
});

现有HTML代码

<tr>
  <th>Metode</th>
  <td>
    <input class="metode" type="text" id="metode" value="{{ $p->methode }}" style="border: none;">
  </td>
</tr>
<tr id="send" style="display: none;">
  <th>Receipt</th>
  <td>{{ $p->receipt }}</td>
</tr>
<tr id="picked" style="display: none;">
  <th>Process</th>
  <td>{{ $p->process }}</td>
</tr>

解决方法

方法一:抽离逻辑为独立函数(推荐,利于维护)

把判断显隐的逻辑单独封装成函数,页面加载时直接调用一次,同时保留输入框的change事件监听:

$(function(){
  // 封装显隐控制逻辑
  function toggleElements(inputValue) {
    if(inputValue === "picked") {
      $("#picked").show();
      $("#send").hide();
    } else {
      $("#picked").hide();
      $("#send").show();
    }
  }

  // 页面加载完成后,立即根据输入框初始值执行一次
  toggleElements($('#metode').val());

  // 监听输入框变化事件,触发逻辑
  $('input:text').change(function(){
    toggleElements($(this).val());
  });
});

方法二:手动触发change事件(简洁写法)

直接在绑定change事件后,调用trigger('change')手动触发一次事件,让页面加载时执行逻辑:

$(function(){
  $('input:text').change(function(){
    if($(this).val() == "picked") {
      $("#picked").show();
      $("#send").hide();
    }
    else {
      $("#picked").hide();
      $("#send").show();
    }
  }).trigger('change'); // 页面加载时手动触发change事件
});

两种方法都能实现页面加载时立即根据数据库返回值显示对应元素,可根据代码维护需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:15:40