需求:明细表默认添加10行,且每一行选择框的内容都填充不同的值
实现效果:
选择月份后明细表自动新增10行,并给下拉框自动填充不同的值。
打开流程,根据 主表月份(选择框) 的变化,实现:明细表添加10行,且给明细表中每行的选择框赋不同的值。
使用的js代码:
var fylb = "field23187";// 明细表费用类别 var yue = "field23193";// 主表月份(选择框) $(document).ready(function() { jQuery("table").css("width", "100%");// 设置表格宽度为100% // 监听月份选择框值变化事件 jQuery("#" + yue).bindPropertyChange(function() { // 删除明细表1所有明细行,(0)表示明细一,1表示明细二,依次类推。 delDTRow(0); // 循环添加10行明细 for (var i = 0; i < 10; i++) { //在明细表1添加一行明细,(0)表示明细一,依次类推。 addRow0(0); // 获取当前最新行索引(索引从0开始,需减1);#indexnum0,0表示明细一,依次类推。 var _rowindex = parseInt(jQuery("#indexnum0").val()) - 1; // 给当前行的费用类别字段赋值 jQuery("#" + fylb + "_" + _rowindex).val(i); } }); }); /** * 删除明细行 * 1.选中所有明细行;2.删除所有明细 * @param {number} dtid - 明细ID */ function delDTRow(dtid) { // 获取所有明细行的复选框 var check = jQuery("input[name=check_node_" + dtid + "]"); // 若存在复选框(即存在明细行) if (check.size() != 0) { // 选中所有复选框 check.attr("checked", true); // 保存原有删除确认函数,临时替换为直接返回true(屏蔽删除提示) var isdelOld = isdel; isdel = function() { return true; }; // 执行删除行方法(根据明细ID调用对应删除函数) eval("deleteRow" + dtid + "(" + dtid + ")"); // 恢复原有删除确认函数 isdel = isdelOld; } }js代码:(完整版)
<!-- script代码,如果需要引用js文件,请使用与HTML中相同的方式。 --> <script type="text/javascript"> var fylb = "field23187";// 明细表费用类别 var yue = "field23193";// 主表月份(选择框) $(document).ready(function() { jQuery("table").css("width", "100%"); jQuery("#" + yue).bindPropertyChange(function() { delDTRow(0); for (var i = 0; i < 10; i++) { addRow0(0); var _rowindex = parseInt(jQuery("#indexnum0").val()) - 1; jQuery("#" + fylb + "_" + _rowindex).val(i); } }); }); // 删除明细行 1.选中所有明细行;2.删除所有明细 function delDTRow(dtid) { var check = jQuery("input[name=check_node_" + dtid + "]"); if (check.size() != 0) { // 选中所有复选框 check.attr("checked", true); // 保存原有删除确认函数,临时替换为直接返回true(屏蔽删除提示) var isdelOld = isdel; isdel = function() { return true; }; // 执行删除行方法(根据明细ID调用对应删除函数) eval("deleteRow" + dtid + "(" + dtid + ")"); // 恢复原有删除确认函数 isdel = isdelOld; } } </script>