当前博客:js生成的下拉框,如何获取内容改变?

186 次浏览【转载需注明来源】

博客作者:【学无止境】

个性签名:寒窗苦读十年一朝凤舞九天

用js生成的下拉框,用$().内容改变无法获取,这样要如何获取?

默认排序
Generic placeholder image
Generic placeholder image
已采纳
学无止境 Time: 2024-01-03 16:40:14
博主已经自己处理完问题并结帖
Generic placeholder image
快码FOF编程 Time: 2023-12-31 15:25:52

使用JS动态渲染的下拉框数据需要使用 lay_表单.更新()命令更新。

其次监听下拉列表框的数据改变,可以使用这个命令:

lay_表单.表单下拉菜单事件("这里输入下拉列表的过滤器值", 定义函数 (表单下拉菜单对象) {
	调试输出(表单下拉菜单对象);
});

注意:第一个参数请输入下拉列表设置的过滤器值,例如:

<下拉列表 属性名称="城市" lay-验证="必填项" lay-过滤器="用户"></下拉列表>
Generic placeholder image
学无止境 Time: 2023-12-31 15:51:16

还是不可以获取

 

Generic placeholder image
学无止境 Time: 2023-12-31 15:53:29

这是个弹出页面

Generic placeholder image
学无止境 回复 1楼 快码FOF编程 Time: 2023-12-31 16:04:24

  </表格头组>

                <表格内容组 类名="数据框样式" id="添加表格"></表格内容组>

            </表格>

        </区块>

        <脚本>

            //这里执行相关的JS代码

            新建对象 lay_日期({

                [lay_日期.配置.绑定元素]: "#获取当前日期",

                [lay_日期.配置.显示底部]: 假

            });

            lay_表单.表单下拉菜单事件(".分类", 定义函数 (表单下拉菜单对象) {

                调试输出(表单下拉菜单对象, "11111");

            });     

            局部变量 分类列表 = `

                    <表格行>

                        <表格内容>

                            <下拉列表 属性名称="分类名称" lay-过滤器="分类">

                                <列表选项 列表值=""></列表选项>

                                  {{添加列表选项}}

                            </下拉列表>

                        </表格内容>

                        <表格内容>

                            <下拉列表 属性名称="收款说明" lay-过滤器="下拉框事件{{b}}">

                                <列表选项 列表值=""></列表选项>

                            </下拉列表>

                        </表格内容>

                        <表格内容>

                            <数据框 数据类型="禁止" 类名="lay-输入框" id="收款余额" 自动填充="不记住" 默认提示="" />

                        </表格内容>

                        <表格内容>

                            <数据框 id="支出金额" 数据类型="文本输入" 必填状态 lay-验证="必填项|数字" 自动填充="不记住" 键盘松开回调="value=数据值.替换(/^\D*(\d*(?:\.\d{0,2})?).*$/g,'$1')" 行内样式="高度: 32px; 图像宽度: 96px; 内边距: 5px" />

                        </表格内容>

                        <表格内容>

                            <数据框 数据类型="禁止" 类名="lay-输入框" id="备注" 自动填充="不记住" 默认提示="" />

                        </表格内容>

                    </表格行>`;

            局部变量 增加表格 = 0;

            定义函数 添加表单() {

                增加表格 = 增加表格 + 1;

                局部变量 获取单位id = JSON类.解析(浏览器临时储存.读取数据("全局单位ID"));

                局部变量 返回id = 网页访问_同步("/flcx?fl=" + 获取单位id[0], 假, {});

                局部变量 分类列表表 = `<列表选项 列表值="{{分类fid}}">{{分类名称称}}</列表选项>`;

                局部变量 分类列表项合集 = "";

                如果 (返回id["数据"].长度 >= 1) {

                    循环 (局部变量 索引 = 0; 索引 < 返回id["数据"].长度; 索引++) {

                        局部变量 临时分类列表 = 分类列表表;

                        临时分类列表 = 临时分类列表.替换("{{分类fid}}", 返回id["数据"][索引]["FID"]);

                        临时分类列表 = 临时分类列表.替换("{{分类名称称}}", 返回id["数据"][索引]["分类名称"]);

                        分类列表项合集 = 分类列表项合集 + 临时分类列表;

                    }

                }

                分类列表 = 分类列表.替换("{{b}}", 增加表格);

             分类列表 = 分类列表.替换("{{添加列表选项}}", 分类列表项合集);

                $("#添加表格").元素内向后添加内容(分类列表);

            }

        </脚本>

Generic placeholder image
快码FOF编程 回复 4楼 学无止境 Time: 2023-12-31 16:08:51
<!文档类型 网页类型>
<网页 语言代码="中文">
    <网页头部>
        <网页信息 文档编码="UTF8" />
        <网页信息 名称="页面视图" 关联数据="视图宽度=填充视图宽度,初始缩放值=1,最大缩放值=1,用户缩放状态=假" />
        <网页信息 关联HTTP="兼容模式" 关联数据="最高IE版本" />
        <网页标题>Document</网页标题>
    </网页头部>
    <网页主体>
        <表格 类名="lay-表格" lay-隔行 lay-风格="行边框风格" lay-尺寸="大尺寸">
            <表格格式列组>
                <表格格式列组值 宽度="150" />
                <表格格式列组值 宽度="200" />
                <表格格式列组值 />
            </表格格式列组>
            <表格头组>
                <表格行>
                    <表格头>昵称</表格头>
                    <表格头>加入时间</表格头>
                    <表格头>下拉设置</表格头>
                </表格行>
            </表格头组>
            <表格内容组 id="内容组">
                <表格行 id="表格拷贝" 行内样式="显示模式: 无效">
                    <表格内容>{1}</表格内容>
                    <表格内容>{2}</表格内容>
                    <表格内容>
                        <表单 类名="lay-表单">
                            <区块 类名="lay-表单-项目">
                                <数据框标注 类名="lay-表单-标签">选择框</数据框标注>
                                <区块 类名="lay-输入框-区块">
                                    <下拉列表 lay-过滤器="{3}" 属性名称="city" lay-验证="必填项">
                                        <列表选项 列表值=""></列表选项>
                                        <列表选项 列表值="0">北京</列表选项>
                                        <列表选项 列表值="1">上海</列表选项>
                                        <列表选项 列表值="2">广州</列表选项>
                                        <列表选项 列表值="3">深圳</列表选项>
                                        <列表选项 列表值="4">杭州</列表选项>
                                    </下拉列表>
                                </区块>
                            </区块>
                        </表单>
                    </表格内容>
                </表格行>
            </表格内容组>
        </表格>
        <脚本>
            局部变量 模拟请求 = [
                { "名称": "张三啊", "时间": "2023-11-11","过滤器ID":"测试ID1" },
                { "名称": "张三啊2", "时间": "2023-11-11","过滤器ID":"测试ID2" }
            ]; //这里可通过网络请求数据
            循环 (局部变量 索引 = 0; 索引 < 模拟请求.长度; 索引++) {
                局部变量 元素内容 = $("#表格拷贝").控件属性值("outerHTML");
                元素内容 = 元素内容.替换("{1}", 模拟请求[索引]["名称"]);
                元素内容 = 元素内容.替换("{2}", 模拟请求[索引]["时间"]);
                元素内容 = 元素内容.替换("{3}", 模拟请求[索引]["过滤器ID"]);
                下拉监听方法(模拟请求[索引]["过滤器ID"])
                元素内容 = 元素内容.替换("表格拷贝", "表格拷贝" + 索引); //更改为不一样的ID
                元素内容 = 元素内容.替换("display: none", "display: table-row"); //设置显示模式为:显示模式: 表格行元素;
                $("#内容组").元素内向后添加内容(元素内容);
            }
            定义函数 下拉监听方法(过滤器ID){
                lay_表单.表单下拉菜单事件(过滤器ID, 定义函数 (表单下拉菜单对象) {
                    调试输出(表单下拉菜单对象);
                });
            }
            //这里执行相关的JS代码
        </脚本>
    </网页主体>
</网页>

可以参考上述代码,这是测试案例:动态渲染组件.zip

Generic placeholder image
学无止境 回复 5楼 快码FOF编程 Time: 2024-01-01 15:59:28

1704116357837311.zi

老师帮忙看下哪里出了问题,谢谢!

没有这句是可以调试出的,我是需要这句的,老师看下如何解决,谢谢!

Generic placeholder image
学无止境 回复 6楼 学无止境 Time: 2024-01-01 21:52:08

1704117045787183.zip

这个可以调试出,但是不能用   定义函数 添加表单(){  

Generic placeholder image
qiang 回复 7楼 学无止境 Time: 2024-01-02 09:41:40

动态添加表单元素需要执行一下;

 


js生成的下拉框,如何获取内容改变?