186 次浏览【转载需注明来源】
博客作者:【学无止境】
用js生成的下拉框,用$().内容改变无法获取,这样要如何获取?
使用JS动态渲染的下拉框数据需要使用 lay_表单.更新()命令更新。
其次监听下拉列表框的数据改变,可以使用这个命令:
lay_表单.表单下拉菜单事件("这里输入下拉列表的过滤器值", 定义函数 (表单下拉菜单对象) { 调试输出(表单下拉菜单对象); });
注意:第一个参数请输入下拉列表设置的过滤器值,例如:
<下拉列表 属性名称="城市" lay-验证="必填项" lay-过滤器="用户"></下拉列表>
还是不可以获取
这是个弹出页面
</表格头组>
<表格内容组 类名="数据框样式" 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}}", 增加表格);
分类列表 = 分类列表.替换("{{添加列表选项}}", 分类列表项合集);
$("#添加表格").元素内向后添加内容(分类列表);
</脚本>
<!文档类型 网页类型> <网页 语言代码="中文"> <网页头部> <网页信息 文档编码="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
1704116357837311.zi
老师帮忙看下哪里出了问题,谢谢!
没有这句是可以调试出的,我是需要这句的,老师看下如何解决,谢谢!
1704117045787183.zip
这个可以调试出,但是不能用 定义函数 添加表单(){
动态添加表单元素需要执行一下;
不能恶意举报,否则进行封号处理!
测试账号
学无止境 Time: 2024-01-03 16:40:14
评论ID
快码FOF编程 Time: 2023-12-31 15:25:52
评论ID
使用JS动态渲染的下拉框数据需要使用 lay_表单.更新()命令更新。
其次监听下拉列表框的数据改变,可以使用这个命令:
注意:第一个参数请输入下拉列表设置的过滤器值,例如:
学无止境 Time: 2023-12-31 15:51:16
评论ID
还是不可以获取
学无止境 Time: 2023-12-31 15:53:29
评论ID
这是个弹出页面
学无止境 回复 1楼 快码FOF编程 Time: 2023-12-31 16:04:24
评论ID
</表格头组>
<表格内容组 类名="数据框样式" 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}}", 增加表格);
分类列表 = 分类列表.替换("{{添加列表选项}}", 分类列表项合集);
$("#添加表格").元素内向后添加内容(分类列表);
}
</脚本>
快码FOF编程 回复 4楼 学无止境 Time: 2023-12-31 16:08:51
评论ID
可以参考上述代码,这是测试案例:
动态渲染组件.zip
学无止境 回复 5楼 快码FOF编程 Time: 2024-01-01 15:59:28
评论ID
老师帮忙看下哪里出了问题,谢谢!
没有这句是可以调试出的,我是需要这句的,老师看下如何解决,谢谢!
学无止境 回复 6楼 学无止境 Time: 2024-01-01 21:52:08
评论ID
这个可以调试出,但是不能用 定义函数 添加表单(){
qiang 回复 7楼 学无止境 Time: 2024-01-02 09:41:40
评论ID
动态添加表单元素需要执行一下;