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

Tampermonkey脚本修改网页input值后立刻消失,如何让修改值保留?

问题根因

直接修改value属性仅更新了DOM元素的属性值,没有触发输入框绑定的input、change等事件,页面的表单校验/状态同步逻辑感知不到你的修改,提交前就会重置输入框内容。

可行解决方案

方案1:主动触发事件(兼容性最高)

修改完值后主动抛出输入相关事件,通知页面逻辑值已更新:

unitsInput[i].value = spearman[currentScavenge];
// 触发实时输入事件,适配大部分监听输入的场景
unitsInput[i].dispatchEvent(new Event('input', { bubbles: true }));
// 触发失焦变更事件,适配仅监听内容变化的场景
unitsInput[i].dispatchEvent(new Event('change', { bubbles: true }));

方案2:模拟真实用户输入(适配有框架状态管理的页面)

如果页面是基于React/Vue等前端框架开发的,直接修改DOM属性无法同步到框架内部状态,可以用模拟输入的方式写入值:

unitsInput[i].focus();
// 选中原有内容
document.execCommand('selectAll', false);
// 插入新值,等价于用户手动输入
document.execCommand('insertText', false, String(spearman[currentScavenge]));

额外校验项

先确认你赋值的spearman[currentScavenge]符合输入框限制:

  • 数值不超过max属性的99999
  • 字符长度不超过maxlength的5位
  • 内容为纯数字,没有其他非法字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:45:01