上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: granded - 

关于文本框value值读取机制的问题

[复制链接]
  • TA的每日心情
    擦汗
    2024-5-7 18:25
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    23

    回帖

    32

    积分

    助理工程师

    积分
    32
    发表于 2023-11-3 19:48:30 | 显示全部楼层 | 阅读模式
    悬赏2油猫币已解决
    目前在开发一个脚本需要填写一个查询表单,在一个文本框种填写相应的信息后点击提交后反馈数据。我用query定位到此元素后直接更改value值后可以在网页上看到值已被修改,但是提交的表单信息还是原来的旧值。也就是说是否是onchange类的事件的潜在影响,能科普下这类机制吗?

    最佳答案

    查看完整内容

    [油猴脚本开发指南]元素规则校验和检测的触发 https://bbs.tampermonkey.net.cn/thread-1250-1-1.html (出处: 油猴中文网)
  • TA的每日心情
    慵懒
    14 小时前
  • 签到天数: 811 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1555

    积分

    荣誉开发者

    积分
    1555

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2023-11-3 19:48:31 | 显示全部楼层
    [油猴脚本开发指南]元素规则校验和检测的触发
    https://bbs.tampermonkey.net.cn/thread-1250-1-1.html
    (出处: 油猴中文网)
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-5-7 18:25
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    23

    回帖

    32

    积分

    助理工程师

    积分
    32
    发表于 2023-11-3 19:50:03 | 显示全部楼层
    @李恒道  哥哥救我
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2023-11-3 22:00:45 | 显示全部楼层
    楼上正解
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-24 00:00
  • 签到天数: 31 天

    [LV.5]常住居民I

    4

    主题

    39

    回帖

    52

    积分

    初级工程师

    积分
    52

    油中3周年挑战者 lv1

    发表于 2023-11-4 09:11:44 | 显示全部楼层

    本帖最后由 ray040237 于 2023-11-4 09:14 编辑

    1.派发事件,这种方法适用于vue页面,和纯净的html页面;

      let nputLabel = $("div"); //这里用的是jquery,也可以适用js,注意后面操作的元素都是dom对象,所以使用了jquery后需要下标转为dom
              inputLabel[0].value = "deal";
              inputLabel[0].dispatchEvent(
                new Event("change", {
                  view: window,
                  bubbles: true,
                  cancelable: true,
                })
              );

    2.简写派发事件,也仅适用vue页面和纯净的html页面;

        let inputLabel = $(".el-input-group__prepend+.el-input__inner");
            inputLabel.val(asin);//给input赋值
            inputLabel[0].dispatchEvent(new InputEvent("input"));//触发输入事件

    3.react页面专属,因为react16内部定义了descript拦截value,所以派发事件,无法触发input所绑定的事件,需要重置输入状态;

    let inputLabel = $("div"); //这里获取需要自动录入的input内容
              let lastValue = inputLabel[0].value;
              inputLabel[0].value = "deal";
              let event = new Event("input", { bubbles: true });
              //  React15
              event.simulated = true;
              //  React16 内部定义了descriptor拦截value,此处重置状态
              let tracker = inputLabel[0]._valueTracker;
              if (tracker) {
                tracker.setValue(lastValue);
              }
              inputLabel[0].dispatchEvent(event);

    搬运来自:https://blog.csdn.net/weixin_54051261/article/details/125752218

    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-5-7 18:25
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    23

    回帖

    32

    积分

    助理工程师

    积分
    32
    发表于 2023-11-5 09:42:59 | 显示全部楼层
    谢谢哥哥们
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表