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

实现From Id输入框值同步至To Id输入框且支持手动修改

解决方案

要实现输入From Id时自动同步至To Id输入框,同时允许用户按需修改To Id,可根据场景选择以下两种实现方式:

方式一:每次修改From Id都同步覆盖To Id

这种方式下,无论用户是否手动修改过To Id,只要更新From Id,To Id都会被同步为当前From Id的值:

<Formfield label="From Id">
  <Input 
    value={frmdata.fromid} 
    onChange={(evt) => {
      const newFromId = evt.target.value;
      // 同时更新fromid和toid
      setFrmdata({ ...frmdata, fromid: newFromId, toid: newFromId });
    }} 
  />
</Formfield>
<Formfield label="To Id">
  <Input 
    value={frmdata.toid} 
    onChange={(evt) => {
      setFrmdata({ ...frmdata, toid: evt.target.value });
    }} 
  />
</Formfield>

方式二:用户手动修改To Id后停止同步

如果希望用户手动修改To Id后,后续更新From Id不再覆盖To Id,可以新增一个状态标记是否修改过To Id:

// 新增状态,标记用户是否手动修改过To Id
const [hasModifiedToId, setHasModifiedToId] = useState(false);

<Formfield label="From Id">
  <Input 
    value={frmdata.fromid} 
    onChange={(evt) => {
      const newFromId = evt.target.value;
      let newFrmData = { ...frmdata, fromid: newFromId };
      // 仅当用户未修改过To Id时,同步更新toid
      if (!hasModifiedToId) {
        newFrmData.toid = newFromId;
      }
      setFrmdata(newFrmData);
    }} 
  />
</Formfield>
<Formfield label="To Id">
  <Input 
    value={frmdata.toid} 
    onChange={(evt) => {
      setFrmdata({ ...frmdata, toid: evt.target.value });
      // 标记用户已手动修改To Id
      setHasModifiedToId(true);
    }} 
  />
</Formfield>

说明

  • 方式一逻辑简单,适合需要始终保持From Id与To Id初始同步的场景
  • 方式二更灵活,能避免用户手动输入的To Id被后续From Id的修改覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:55:20