V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OAHMOA
V2EX  ›  前端开发

前端 React 问题请教

  •  
  •   OAHMOA · 2018-09-09 22:22:40 +08:00 · 2025 次点击
    这是一个创建于 2300 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求请教,一个 React 写的站,我想弄个 chrome 插件去修改 input 值,有啥好法子不..

    p.s. 试过了修改 input 的 value 后触发 change 事件,但点击提交时,value 还是恢复成了 defaultValue 的值。React 不熟悉,还望大家多多指教!

    noe132
        1
    noe132  
       2018-09-09 22:34:57 +08:00
    我用 vue.js
    input.dispatchEvent(new Event('input'))
    能够触发 model 更新
    react 应该也类似吧
    grewer
        2
    grewer  
       2018-09-09 22:50:23 +08:00
    复制一个无事件的 input ,替换原目标,再设置值不就行啦
    zythum
        3
    zythum  
       2018-09-09 22:54:50 +08:00
    同 1 楼的同学, 理论上触发下 input 时间可以。你可以试试。
    OAHMOA
        4
    OAHMOA  
    OP
       2018-09-09 23:35:04 +08:00
    @noe132
    @zythum
    我在设置完 value 后,试过触发 input 和 change 事件,但是一提交都还是恢复成 defaultvalue 了..是我写的有问题吗?
    不过这是个日历组件..没弄明白这逻辑

    我这么写的:
    inputElement_0.value=5;
    var inputEvt = document.createEvent("HTMLEvents");
    inputEvt.initEvent("input", true, true);
    inputElement_0.dispatchEvent(inputEvt);
    OAHMOA
        5
    OAHMOA  
    OP
       2018-09-09 23:42:15 +08:00
    @grewer 谢谢亲,尝试了下,这样改了 value 后,提交时还是之前的默认值..
    DrugsZ
        6
    DrugsZ  
       2018-09-10 09:00:17 +08:00
    他有可能 input 写入的 value 是一个固定值,不是变量,所以应该没办法修改,
    Helios0
        7
    Helios0  
       2018-09-10 17:40:19 +08:00
    可否贴个链接指个路去看一眼
    OAHMOA
        8
    OAHMOA  
    OP
       2018-09-10 23:18:32 +08:00
    @Helios0 是公司后台系统,改不了源码,为了方便只能弄插件了 ..
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5746 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:48 · PVG 10:48 · LAX 18:48 · JFK 21:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.