可编辑表格中回车键注意的事项:1,如果在handler中用到了ajax.get并在其中用了,jboltTableSetCells,那么在后面必须要用activeCurrentFocusTdToEditor(table);恢复焦点,如果单元格中用到了type=autocomplete,并且焦点始终跳不出的话 那么就要用另一个函数jboltEditableFocusTurnRightByDir(table,event)而不能用activeCurrentFocusTdToEditor(table),2,如没有用到ajax.get 那么这两个函数都不能用,不然也会不正常
当用parent.DialogUtil.openNewDialog,生成一个弹窗后,把数据返回,不能用parent.函数,只能用parent.frames[0].函数,才能使用,因为,这种方式生成的弹窗,实际和生成的它那一层是并列的,并不是父子关系,因为是它们的父窗生成它们兄弟两的 jbolttable中用了data-fast-mode="true"时,要在td中加上style="width: 180px;max-width: 180px" 2个样式,不然标题和数据表格就宽度不一样
JBOLT可编辑表格回车到最后,新增行但是焦点没了,原因就是有隐藏的单元格,处理就是在cols中设置隐藏的单元格的editable:false就可以了
通常表格中的数据时有时没有,估计就是ID的问题,如果用到id,要用动态的,set()得pageid,不用能setlocal()
jboltlayer,iframe与调用者为一整体,不是父子关系,所以函数直接用,并且不要写同样的函数在各自的HTML中
getheader获取HTTP中的header中的请求 getRawData() 方法,可以很方便地从 http 请求 body 中获取 String 型的数据,通常这类数据是 json 或 XML 数据,例如: String json = getRawData();User user = FastJson.getJson().parse(json, User.class); 以上代码通过 getRawData() 获取到了客户端传过来的 String 型的 json 数据库。 getRawData() 方法可以在一次请求交互中多次反复调用,不会抛出异常。
如何让页面一部分滚动,一部分不滚动,做法就是设定固定高度,外部整个设为不滚动style="overflow:hidden; height:100%;" ,内部滚动部分: style="overflow:auto; height:100%;border: solid red 1px">,如果不用百分比就设500px等之类的,随意调,具体效果看施工单 如果这两个<textarea></textarea>不在一行上,比如 分行写效果会不一样的代码 使用textarea时一定要注意,textarea标签里的文字是相对textarea来说的,textarea相当于提供了一个编辑区域,这个区域是紧接着textarea开始的,即所谓的所见即所得吧。只要这两个标签不在一行上,这时</textarea>前的空白也会被他识别为空白文字的,你会发现你的鼠标编辑指针不会在文字最开始或者紧挨文字闪动 下面小编就为大家带来一篇jquery遍历table的tr获取td的值实现方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 html代码: 删除 删除 删除 方法一: var trList = $("#history_income_list").children("tr") for (var i=0;i var tdArr = trList.eq(i).find("td"); var history_income_type = tdArr.eq(0).find("input").val();//收入类别 var history_income_money = tdArr.eq(1).find("input").val();//收入金额 var history_income_remark = tdArr.eq(2).find("input").val();// 备注 alert(history_income_type); alert(history_income_money); alert(history_income_remark); } 方法二: $("#history_income_list").find("tr").each(function(){ var tdArr = $(this).children(); var history_income_type = tdArr.eq(0).find("input").val();//收入类别 var history_income_money = tdArr.eq(1).find("input").val();//收入金额 var history_income_remark = tdArr.eq(2).find("input").val();// 备注 alert(history_income_type); alert(history_income_money); alert(history_income_remark); });
———————————————— 版权声明:本文为CSDN博主「在下小悟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_31992237/article/details/113391450 假设现在有一个json的数组:var json={a:1,b:2,c:3,d:4}; 要遍历这个数组:如下 for(var i in json){ alert(i+"="+json[i]); } 由于json没有length这个属性,那么我们可以先声明一个计数器,一开始计数器为0,遍历完成后可得到json的长度; ———————————————— 原文链接:https://blog.csdn.net/u011546421/article/details/53438341
总是取FORM的action的值不到,后来发现因是属性,所以得用属性的办法,form.attr("action")
#set(pageId=RandomUtil.random(6)) if pageId是用的set ,那么元素的ID,特别是表,div等如果要设id的必须带上#pageId 如果是用的setlocal那么元素的ID,特别是表,div等如果要设id的不能带上#pageId否则就可能取不到数据,点左侧按钮,可能无法查询
主从表必须要用特定的样式
上传按钮硬是解禁不掉,其实它里面还有一层包括了实际的上传的按钮所以只得这样$(":button").not('#upbtn,#savebtn').prop("disabled", true);这里可同时排除两个 $('#upbtn').find("button").removeAttr("disabled"); 点按钮,地址栏出url+参数时,多半是关联的form id 不一致造成的。layer子窗体界面大于父窗体界面的实现 data-target=parent在css中,可以将height属性设置为auto实现div高度随内容变化
div剩余高度自动填充 有一个高度自适应的div,里面有两个div,一个高度100px,希望另一个填满剩下的高度。 如果外层div高度自适应于内部,就完全不需要额外写规则了,另外一个DIV绝对能撑高外层div,填得紧紧实实的。 如果是外层div自适应于它的父级,纯CSS的办法是有的。 为了方便演示,下面的demo都让外层元素100%适应于html和body,点Edit in JSFiddle之后可以看到,拖动窗口高度,均能自适应。 box-sizing方案外层box-sizing: border-box; 同时设置padding: 100px 0 0 ; 内层100像素高的元素向上移动100像素,或使用absolute定位防止占据空间; 另一个元素直接height: 100%;
这就是两个方案了 第一种方案: html代码: <div class="outer"> <div class="A"></div> <div class="B"></div> </div>
css代码: html, body { height: 100%; padding: 0; margin: 0; } .outer { height: 100%; padding: 100px 0 0; box-sizing: border-box ; } .A { height: 100px; margin: -100px 0 0; background: #BBE8F2; } .B { height: 100%; background: #D9C666; }
第二种方案: html代码: <div class="outer"> <div class="A"></div> <div class="B"></div> </div>
css代码: html, body { height: 100%; padding: 0; margin: 0; } .outer { height: 100%; padding: 100px 0 0; box-sizing: border-box ; position: relative; } .A { height: 100px; background: #BBE8F2; position: absolute; top: 0 ; left: 0 ; width: 100%; } .B { height: 100%; background: #D9C666; }
absolute positioning外层position: relative ; 百分百自适应元素直接position: absolute; top: 100px; bottom: 0; left: 0
第三个方案: html代码: <div class="outer"> <div class="A"></div> <div class="B"></div> </div>
css代码: html, body { height: 100%; padding: 0; margin: 0; } .outer { height: 100%; position: relative; } .A { height: 100px; background: #BBE8F2; } .B { background: #D9C666; width: 100%; position: absolute; top: 100px ; left: 0 ; bottom: 0; }
注意一下,这三个方案都是IE8+。
可编辑表格中键盘方向键的使用:ctrl+上下左右 可编辑表格中回车不能换行的原因:style="display:none"或者 hidden="hidden"的字段也要可编辑option中将它设置出来,editable=false 如 prc_ck:{ name:"prc_ck", type:"input_number", maxLength:18, placeholder:"参考价", rule:"pznumber", roundtag:"round",//四舍五入 removezero:true,//去0 tofixed:3,//保留两位 editable:false, },
关于可编辑表格的部分知识在成品出库单中有体现 public String getEmpId() { String sCon=""; if (getEmpNo()!=null) sCon=String.valueOf(getEmpNo()); else sCon=""; if (sCon!="") { EmployeeService Empgz=new EmployeeService(); Employee Egb=Empgz.findById(Long.valueOf(sCon)); if (Egb!=null&&Egb.size()>0&&Egb.get("emp_no")!=null) sCon=Egb.get("emp_no"); else sCon="";} return sCon==null?"":sCon; } 分页 Sql sql = selectSql() .select("a.*,b.emp_no emp_id") .from(Empdd.class,"a") .leftJoin(Employee.class,"b","b.id=a.emp_no") .page(pageNumber,pageSize); //关键词模糊查询 sql.likeMulti(keywords,"dd_date","shop_id","emp_no","emp_name"); //排序 sql.desc("id") return paginate(sql); //return paginateByKeywords("id","desc", pageNumber, pageSize, keywords, "dd_date,shop_id,emp_no,emp_name");
renderJsonData(aa);经过格式包装,只显示与调用model.class字段命名相符的字段 renderJsonData(aa,true);使用JFinalJson序列化,这个呢就显示数据表原始字段 分页的几种方式 model模式 find(sql) paginate(Sql) record模式 findRecord(sql) paginateRecord(sql) //qiniu中用的record模式renderjosondata 出来的字段为数据表中的原始字段效果等同于renderJsonData(aa,true)
public void datas() { renderJsonData(service.paginateAdminDatas(getPageNumber(),getPageSize(),getKeywords(),getType(),getBoolean("isDefault"),getEnable())); } public Page<Record> paginateAdminRecordDatas(int pageNumber, int pageSize, String keywords,Integer type,Boolean enable) { Sql sql = selectSql().page(pageNumber, pageSize); sql.eq("type", type); sql.eq("enable", enable); sql.likeMulti(keywords, "name","sn","remark","ak","sk"); sql.orderById(true); return paginateRecord(sql); } <td>${number_format(data.amtn,2,'.',',')}</td> <td>${date(data.endDd,"yyyy-MM-dd")}</td> class="jbolt_page_title"这个在jbolt page中是一套,title content,等等是一整 套,差一就会出现不可预料的问题,比如页面滚动之类的, table 设定ID值要注意,不能用固定的,如id="tab"之类的,最好要用 之类动态的,不然点菜单时会不执行table中的data-url,按说法是找不到那个ID的table 可编辑表格的说明: 设置单元格:jboltTableSetCells(tableId,tr,[{column:"name",text:"zzz",value:123}]true) 
把你拿到的ajax返回的这一条数据的json 自己换成数组 就能批量列修改了 或者你后端就处理好这个结构直接返回这个数据 jquery怎么获得表中最后一个tr的idvar trs= $('table ').find("tr"); var id= trs[trs.length-1].id; $("#table_id").find('tr’).last().attr('id'); 得最后一个tr $("#TableID tr:last") 得到数第二个 $('#TableID tr').eq(-2) tr怎么取最后一行某个值? 用JQuery获取表格最后一行或一列的代码例子 代码如下: $('#mytable tr:last').find('td').addClass('end'); $('#mytable tr').find('td:last').addClass('end'); 获取倒数第二行 代码如下: $("#tbData tr").get($("#tbData tr").length - 2); $("#tbData tr").eq(-2);
column指定你这一列在thead的th上的data-column配置 text是td的显示文本,value是td上的绑定的这个值,选择的数据一般text是显示的文本 value是id,例如性别 显示的是男女 但是值是 1 2
3.解决jbolttable中有hidden单元格时,回车和tab键中光标乱窜和消失的问题 getEditableTableOptions中 对应列对象设为editable:false即可 


getEditableTableOptions 中的列头prd_id:{对应th中data-column="prd_id", jboltTableGetOneColumnDatas(tr, "prd_id", true);//得所有行指定的字段的值 jboltTableGetRowJsonData(table,tr)//得某一行的数据 datas=getJboltTableCheckedDatas("jbolt_orderItemTable_#(pageId)");//得选中行的json数据 datas=getJboltTableAllDatas()得到全部数据
如果后台采用list<record>传数据到前端,那么前端一定要在可编辑表格,给每列都设上submitAttr=“字段名”来不用转驼峰直接用数据库字段,不然会出现莫明的错误,例如取不到值,传给后台还有可能多出驼峰的字段,如果直接用model,采用驼峰的话,就不用加这个了,具体参考hemon这个模块
//下面的函数是只要值有变化就会执行 $("[name=cusName]").bind("input propertychange",function () {
$("[name=rem]").val($(this).val());
});
js定时器 //const intervalID = setInterval(myCallback,1000); // setInterval() 的返回值为一个线程号,这个线程号可以用在清除定时器的函数中 clearInterval(线程号) //function myCallback(a,b){ // gettotal(this) // }
|