分享

乱记一通

 hncdman 2022-12-13 发布于湖南
可编辑表格中回车键注意的事项: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方案

  1. 外层box-sizing: border-box; 同时设置padding: 100px 0 0

  2. 内层100像素高的元素向上移动100像素,或使用absolute定位防止占据空间;

  3. 另一个元素直接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

  1. 外层position: relative

  2. 百分百自适应元素直接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"之类的,最好要用

id="table_#(pageId)"

之类动态的,不然点菜单时会不执行table中的data-url,按说法是找不到那个ID的table

可编辑表格的说明:

设置单元格:jboltTableSetCells(tableId,tr,[{column:"name",text:"zzz",value:123}]true)

  

把你拿到的ajax返回的这一条数据的json 自己换成数组

  

就能批量列修改了

或者你后端就处理好这个结构直接返回这个数据

jquery怎么获得表中最后一个tr的id

var 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)
// }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多