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

如何让隐藏输入框始终同步其他输入框值(含数据库初始值)

解决输入框初始值同步到隐藏输入框的问题

你的问题出在原代码只在keyup事件触发时才同步值,但页面加载时输入框的数据库初始值不会触发keyup,所以隐藏框拿不到初始内容。

最简单的修复方式是页面加载完成后主动执行一次同步逻辑,同时把同步代码抽成函数复用,避免重复写相同逻辑:

$(document).ready(function() {
  // 封装同步逻辑成函数
  function syncHiddenInput() {
    const textInput = $('input:text[name="'.$data['name'].'"]');
    $('input:hidden[id="'.$data['name'].'"]').val( "'.$data['id'].',' + textInput.val() );
  }

  // 页面就绪后立刻同步一次初始值
  syncHiddenInput();

  // 监听keyup事件,实时同步用户输入
  $('input:text[name="'.$data['name'].'"]').keyup(syncHiddenInput);
});

如果要覆盖更多输入场景(比如用户右键粘贴内容、用浏览器自动填充等,这些操作可能不会触发keyup),可以把keyup换成监听input和change事件,这样更稳妥:

$(document).ready(function() {
  function syncHiddenInput() {
    const textInput = $('input:text[name="'.$data['name'].'"]');
    $('input:hidden[id="'.$data['name'].'"]').val( "'.$data['id'].',' + textInput.val() );
  }

  syncHiddenInput();

  // 监听input(实时输入)和change(失焦后内容变化)事件
  $('input:text[name="'.$data['name'].'"]').on('input change', syncHiddenInput);
});

这样不管是页面加载时的初始值,还是用户后续的任何输入操作,隐藏输入框都会同步到最新的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:02:38