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

表格如何填写数据并验证求思路

[复制链接]

该用户从未签到

2

主题

6

回帖

10

积分

助理工程师

积分
10
发表于 前天 07:51 | 显示全部楼层 | 阅读模式
悬赏2油猫币未解决

QQ图片20241021074622.png

  
  
  
  
  
  
附加项目
单位
数量
单价
金额
自负比例
1
费用
3.00
9.00
27.00
1.000
 
 

这个是表格,点击数量栏进入编辑状态,输入数据后,点击其他地方,就开始计算金额。请问如何输入数量并诱发计算操作呀,有思路吗?
我记得以前都是input操作。这个表格的没有见到过。。

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    305

    主题

    4139

    回帖

    4019

    积分

    管理员

    积分
    4019

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 前天 10:19 | 显示全部楼层
    操作input填入数据,再操作button提交计算就好了

    可以参考:https://learn.scriptcat.org/%E6% ... %E5%A1%AB%E5%86%99/
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 前天 11:34 | 显示全部楼层
    本帖最后由 xxdoc 于 2024-10-21 11:39 编辑

    不行啊。这个不是input。填写value="0.00" ,根部没有数值没有变化

    var ipt;
                            ipt=document.querySelectorAll("[class*='x-grid3-cell-inner'][class*='x-grid3-col-YLSL']")[0]
                            // ipt.click()
                            ipt.innerText='0.00';
                            //ipt.dispatchEvent(new Event('focus'))
                            // ipt.dispatchEvent(new Event('input'))
                            // ipt.dispatchEvent(new Event('change'))
                            // ipt.dispatchEvent(new Event('blur'));
                            ipt.style.backgroundColor = 'red';
                            ipt.style.border = "4px solid red";
                            ipt.style.borderRadius = "10px";
                            ipt.click()

    无反应,填写 innerText 不会进入编辑状态,只是改变的前台网页内容。没意义
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-7-16 09:20
  • 签到天数: 192 天

    [LV.7]常住居民III

    708

    主题

    5857

    回帖

    6682

    积分

    管理员

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

    积分
    6682

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

    发表于 前天 13:08 | 显示全部楼层
    xxdoc 发表于 2024-10-21 11:34
    不行啊。这个不是input。填写value="0.00" ,根部没有数值没有变化

    var ipt;

    不是input的话是什么dom元素
    另外可以用Wappalyzer查看一下框架
    https://learn.scriptcat.org/%E5% ... E8%AF%AF%E5%8C%BA2/
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 前天 16:30 | 显示全部楼层

    本帖最后由 xxdoc 于 2024-10-21 16:37 编辑

    本帖最后由 xxdoc 于 2024-10-21 16:36 编辑

    李恒道 发表于 2024-10-21 13:08

    不是input的话是什么dom元素
    另外可以用Wappalyzer查看一下框架
    https://learn.scriptcat.org/%E5%B8%B8% ...

    就是一个表格,表格里面的数据需要修改 ,

    无标题.jpg

    只能看到这个

    11.png

    <div class="x-panel-ml"><div class="x-panel-mr"><div class="x-panel-mc" id="ext-gen1692"><div class="x-panel-tbar x-panel-tbar-noborder" id="ext-gen1689" style="width: 934px;"><div id="ext-comp-1414" class="x-toolbar x-small-editor x-toolbar-layout-ct" style="width: 930px;"><table cellspacing="0" class="x-toolbar-ct"><tbody><tr><td class="x-toolbar-left" align="left"><table cellspacing="0"><tbody><tr class="x-toolbar-left-row"><td class="x-toolbar-cell" id="ext-gen1707"><table id="ext-comp-1415" cellspacing="0" class="x-btn x-btn-text-icon" style="width: auto;"><tbody class="x-btn-small x-btn-icon-small-left"><tr><td class="x-btn-tl"><i>&nbsp;</i></td><td class="x-btn-tc"></td><td class="x-btn-tr"><i>&nbsp;</i></td></tr><tr><td class="x-btn-ml"><i>&nbsp;</i></td><td class="x-btn-mc"><em class="" unselectable="on"><button type="button" id="ext-gen1708" class=" x-btn-text add">插入(F1)</button></em></td><td class="x-btn-mr"><i>&nbsp;</i></td></tr><tr><td class="x-btn-bl"><i>&nbsp;</i></td><td class="x-btn-bc"></td><td class="x-btn-br"><i>&nbsp;</i></td></tr></tbody></table></td><td class="x-toolbar-cell" id="ext-gen1709"><table id="ext-comp-1416" cellspacing="0" class="x-btn x-btn-text-icon" style="width: auto;"><tbody class="x-btn-small x-btn-icon-small-left"><tr><td class="x-btn-tl"><i>&nbsp;</i></td><td class="x-btn-tc"></td><td class="x-btn-tr"><i>&nbsp;</i></td></tr><tr><td class="x-btn-ml"><i>&nbsp;</i></td><td class="x-btn-mc"><em class="" unselectable="on"><button type="button" id="ext-gen1710" class=" x-btn-text remove">删除(F2)</button></em></td><td class="x-btn-mr"><i>&nbsp;</i></td></tr><tr><td class="x-btn-bl"><i>&nbsp;</i></td><td class="x-btn-bc"></td><td class="x-btn-br"><i>&nbsp;</i></td></tr></tbody></table></td></tr></tbody></table></td><td class="x-toolbar-right" align="right"><table cellspacing="0" class="x-toolbar-right-ct"><tbody><tr><td><table cellspacing="0"><tbody><tr class="x-toolbar-right-row"></tr></tbody></table></td><td><table cellspacing="0"><tbody><tr class="x-toolbar-extras-row"></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class="x-panel-body x-panel-body-noborder" id="ext-gen1690" style="height: 110px; width: 934px;"><div class="x-grid3" hidefocus="true" id="ext-gen1694" style="width: 936px; height: 112px;"><div class="x-grid3-viewport" id="ext-gen1695"><div class="x-grid3-header" id="ext-gen1696"><div class="x-grid3-header-inner" id="ext-gen1698" style="width: 936px;"><div class="x-grid3-header-offset" style="width:640px;"><table border="0" cellspacing="0" cellpadding="0" style="width: 623px;"><thead><tr class="x-grid3-hd-row"><td class="x-grid3-hd x-grid3-cell x-grid3-td-numberer x-grid3-cell-first " style="width: 23px;"><div class="x-grid3-hd-inner x-grid3-hd-numberer" unselectable="on" style=""><a class="x-grid3-hd-btn" href="#"></a><img alt="" class="x-grid3-sort-icon" src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="></div></td><td class="x-grid3-hd x-grid3-cell x-grid3-td-FYMC" style="width: 200px;"><div class="x-grid3-hd-inner x-grid3-hd-FYMC" unselectable="on" style=""><a class="x-grid3-hd-btn" href="#" id="ext-gen1906" style="height: 22px;"></a>附加项目<img alt="" class="x-grid3-sort-icon" src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="></div></td><td class="x-grid3-hd x-grid3-cell x-grid3-td-FYDW" style="width: 80px;"><div class="x-grid3-hd-inner x-grid3-hd-FYDW" unselectable="on" style=""><a class="x-grid3-hd-btn" href="#" id="ext-gen1909" style="height: 22px;"></a>单位<img alt="" class="x-grid3-sort-icon" src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="></div></td><td class="x-grid3-hd x-grid3-cell x-grid3-td-YLSL" style="width: 80px; text-align: right;"><div class="x-grid3-hd-inner x-grid3-hd-YLSL" unselectable="on" style="padding-right: 16px;"><a class="x-grid3-hd-btn" href="#" id="ext-gen1914" style="height: 22px;"></a>数量<img alt="" class="x-grid3-sort-icon" src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="></div></td><td class="x-grid3-hd x-grid3-cell x-grid3-td-YLDJ" style="width: 80px; text-align: right;"><div class="x-grid3-hd-inner x-grid3-hd-YLDJ" unselectable="on" style="padding-right: 16px;"><a class="x-grid3-hd-btn" href="#" id="ext-gen1910" style="height: 22px;"></a>单价<img alt="" class="x-grid3-sort-icon" src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="></div></td><td class="x-grid3-hd x-grid3-cell x-grid3-td-HJJE" style="width: 80px; text-align: right;"><div class="x-grid3-hd-inner x-grid3-hd-HJJE" unselectable="on" style="padding-right: 16px;"><a class="x-grid3-hd-btn" href="#" id="ext-gen1917" style="height: 22px;"></a>金额<img alt="" class="x-grid3-sort-icon" src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="></div></td><td class="x-grid3-hd x-grid3-cell x-grid3-td-ZFBL x-grid3-cell-last " style="width: 80px;text-align: right;"><div class="x-grid3-hd-inner x-grid3-hd-ZFBL" unselectable="on" style="padding-right: 16px;"><a class="x-grid3-hd-btn" href="#"></a>自负比例<img alt="" class="x-grid3-sort-icon" src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="></div></td></tr></thead></table></div></div><div class="x-clear"></div></div><div class="x-grid3-scroller" id="ext-gen1697" style="width: 936px; height: 88px;"><div class="x-grid3-body" style="width:623px;" id="ext-gen1699"><div class=" x-grid3-row" style="width:623px;"><table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="width: 623px;"><tbody><tr><td class="x-grid3-col x-grid3-cell x-grid3-td-numberer x-grid3-cell-first" style="width: 23px;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-numberer" unselectable="on">1</div></td><td class="x-grid3-col x-grid3-cell x-grid3-td-FYMC" style="width: 200px;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-FYMC" unselectable="on" id="ext-gen1920">收费 费</div></td><td class="x-grid3-col x-grid3-cell x-grid3-td-FYDW " style="width: 80px;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-FYDW" unselectable="on">次</div></td><td class="x-grid3-col x-grid3-cell x-grid3-td-YLSL x-grid3-dirty-cell x-grid3-cell-selected" style="color:#00AA00;font-weight:bold;width: 80px;text-align: right;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-YLSL" unselectable="on" id="ext-gen1916">1.00</div></td><td class="x-grid3-col x-grid3-cell x-grid3-td-YLDJ x-grid3-dirty-cell" style="color:#00AA00;font-weight:bold;width: 80px;text-align: right;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-YLDJ" unselectable="on">9.00</div></td><td class="x-grid3-col x-grid3-cell x-grid3-td-HJJE " style="color:#00AA00;font-weight:bold;width: 80px;text-align: right;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-HJJE" unselectable="on">9.00</div></td><td class="x-grid3-col x-grid3-cell x-grid3-td-ZFBL x-grid3-cell-last " style="color:#00AA00;font-weight:bold;width: 80px;text-align: right;" tabindex="0"><div class="x-grid3-cell-inner x-grid3-col-ZFBL" unselectable="on">1.000</div></td></tr></tbody></table></div></div><a href="#" class="x-grid3-focus" tabindex="-1" id="ext-gen1700" style="left: 303px; top: 1px;"></a><div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1481" style="position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px; overflow: hidden;"><div class="x-form-field-wrap x-form-field-trigger-wrap" id="ext-gen1880" style="width: 200px;"><input type="text" size="24" autocomplete="off" id="ext-comp-1408" name="" class="x-form-text x-form-field" style="width: 192px;"><img src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt="" class="x-form-trigger x-form-arrow-trigger" id="ext-gen1881" style="display: none;"></div></div><div class="x-layer x-editor x-small-editor x-grid-editor" id="ext-comp-1495" style="position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px; overflow: hidden;"><input type="text" size="20" autocomplete="off" id="ext-comp-1410" name="" class="x-form-text x-form-field x-form-num-field" style="width: 72px; height: 16px;"></div></div></div><div class="x-grid3-resize-marker" id="ext-gen1701">&nbsp;</div><div class="x-grid3-resize-proxy" id="ext-gen1702">&nbsp;</div></div></div></div></div></div>
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-7-16 09:20
  • 签到天数: 192 天

    [LV.7]常住居民III

    708

    主题

    5857

    回帖

    6682

    积分

    管理员

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

    积分
    6682

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

    发表于 前天 17:41 | 显示全部楼层
    xxdoc 发表于 2024-10-21 16:30
    [md]> 本帖最后由 xxdoc 于 2024-10-21 16:36 编辑

    > [李恒道 发表于 2024-10-21 13:08](forum.php?mod=re ...

    可以尝试直接拿到Vue的数据来控制显示
    你看到只有表格可能是因为显示是表格
    出现鼠标触发才能显示出来input
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 昨天 06:44 | 显示全部楼层

    有例子吗?我无从下手。

    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-7-16 09:20
  • 签到天数: 192 天

    [LV.7]常住居民III

    708

    主题

    5857

    回帖

    6682

    积分

    管理员

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

    积分
    6682

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

    发表于 昨天 08:28 | 显示全部楼层
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 昨天 16:34 | 显示全部楼层
    本帖最后由 xxdoc 于 2024-10-22 16:41 编辑


    不知道怎么去下断点。怎么监听到数据改变

    下面是原代码中本来就有debug中断

    // 不修改的情况下不触发afterCellEdit
                    module.on("beforeCellEdit", this.beforeGridEdit, this);
                    module.grid.on("beforeCheckedit", this.beforeCheckEdit, this)
                    module.on("afterCellEdit", this.afterGridEdit, this);
                    module.on("doNew", this.doNew, this);
                    module.on("doSave", this.doSave, this);
                    module.on("doRemove", this.doRemoveCF02, this);
                    module.on("loadData", this.listLoadData, this);
                    // module.on("click", this.loadFJdata, this);
    //                                var gytj = module.grid.getColumnModel().getColumnById("GYTJ").editor;
    //                                gytj.on("select", this.list.ypyfSelect, this.list);
    我知道他是触发的afterCellEdit
    我不知道怎么利用

    afterGridEdit: function (it, record, field, v) {
                    debugger
                    var MZYPZLJSFS_Data = phis.script.rmi.miniJsonRequestSync({
                        serviceId: "publicService",
                        serviceAction: "loadSystemParams",
                        body: {
                            commons: ['MZYPZLJSFS', 'ZYYPZLJSFS']
                        }
                    });
                    var MZYPZLJSFS = MZYPZLJSFS_Data.json.body.MZYPZLJSFS;
                    record.set("MZYPZLJSFS", MZYPZLJSFS);
                    var sign = 1;
                    if (it.id == "YPYF") {
                        field.getStore().each(function (r) {
                            if (r.data.key == v) {
                                if (record.get("MRCS") != r.data.MRCS) {
                                    record.set("MRCS", r.data.MRCS);
                                } else {
                                    sign = 0;//
                                }
                            }
                        }, this);
                    }
                    if (it.id == "YCJL" || it.id == "YYTS" || it.id == "YPYF") {
                        this.isYPSL = false;
                        if (this.exContext.systemParams.QYKJYWGL == 1
                                && record.get("KSBZ") == 1 && it.id == "YYTS") {//
                            var kjywts = this.exContext.systemParams.KJYSYTS || 3;
                            if (isNaN(kjywts)) {
                                MyMessageTip.msg("提示",
                                        "", true);
                                kjywts = 3;
                            }
                            if (v > kjywts) {
                               
                                record.set("YYTS", kjywts);
                                this.setMedQuantity(record);
                                return;
                            }
                        }
                        if (sign == 1) { // 添加this.cflx!=3  && this.cflx != 3
                         
                            this.setMedQuantity(record);
                        }
                    }
                    if (it.id == 'JLBS') {// add by yangl 记录倍数快捷录入
                        record.set("YCJL", parseFloat(v * record.get("YSYCJL"))
                                .toFixed(3));
                    }
                    if (it.id == 'YPYF' || it.id == 'GYTJ' || it.id == 'YYTS'
                            || (it.id == 'YPZS' && this.cflx != 3) || it.id == 'YPDS') {
                        this.isYPSL = false;
                        if (it.id == 'GYTJ') {
                            //替换GYTJ的select事件
                            var gytj = this.list.grid.getColumnModel().getColumnById("GYTJ").editor;
                            this.list.ypyfSelect(gytj, gytj.findRecord("key", record.get("GYTJ")), gytj.selectedIndex, record);// 附加项目
                        }
    //                                        else {
                        var store = this.list.grid.getStore();
                        // if (it.id == "GYTJ") {
                        // this.doGytjChange(record, v);
                        // }
                        store.each(function (r) {
                            if (r.get('YPZH_SHOW') == record.get('YPZH_SHOW')) {
                                if (r.get("YPXH") != record.get("YPXH")) {
                                    r.set(it.id, v);
                                    r.set(it.id + '_text', record.get(it.id + '_text'));
                                    if (it.id == 'YPYF') {
                                        r.set("MRCS", record.get("MRCS"));
                                    }
                                    if ((it.id == 'YPYF' || it.id == 'YYTS')
                                            && sign == 1
                                    ) {// 添加this.cflx!=3 && this.cflx != 3
                                       
                                        this.setMedQuantity(r);
                                    }
                                }
                            }
                        }, this)
    //                                        }
                    }
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-7-16 09:20
  • 签到天数: 192 天

    [LV.7]常住居民III

    708

    主题

    5857

    回帖

    6682

    积分

    管理员

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

    积分
    6682

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

    发表于 昨天 16:49 | 显示全部楼层
    xxdoc 发表于 2024-10-22 16:34
    不知道怎么去下断点。怎么监听到数据改变

    下面是原代码中本来就有debug中断

    看具体流程代码没用的

    模拟触发注重框架的入口点函数,存在mvvm框架直接控制数据实现双向响应即可
    没必要去关注函数做了什么
    直接挖掘最上层的处理函数,能投递进去数据实现触发就可以了
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

    发表回复

    本版积分规则

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