jqgrid 中textarea使用回车键,表格高度自适应

应项目需求实现jqgrid中表格为textarea时高度自适应

jqgrid官网地址:http://blog.mn886.net/jqGrid/

在jqgrid中 编辑状态时的表格 为input,textarea,select时回车事件将触发单元格保存"saveCell";

源码:

1.在源码中搜索"textarea"找到到这段代码,将$("input, select, textarea",cc)中的textarea去掉(个人方法,请参考使用,将不再触发textarea的回车保存!):

$("input, select, textarea",cc).bind("keydown",function(e) {
		if (e.keyCode === 27) {
			if($("input.hasDatepicker",cc).length >0) {
				if( $(".ui-datepicker").is(":hidden") )  { 
                    $($t).jqGrid("restoreCell",iRow,iCol); 
                 }else {  $("input.hasDatepicker",cc).datepicker('hide'); }
		    } else {
		     $($t).jqGrid("restoreCell",iRow,iCol);
		    }
		} //ESC
		if (e.keyCode === 13) {
			 $($t).jqGrid("saveCell",iRow,iCol);
			 // Prevent default action
			 return false;
		} //Enter
		if (e.keyCode === 9)  {
			  if(!$t.grid.hDiv.loading ) {
				  if (e.shiftKey) {$($t).jqGrid("prevCell",iRow,iCol);} //ShiftTAb
			      else {$($t).jqGrid("nextCell",iRow,iCol);} //Tab
		} else {
			return false;
		}
	}
	e.stopPropagation();
});

 

2.通过"textarea"搜索找到此段代码(textarea回车高度自适应解决方法):

case "textarea" :
	elem = document.createElement("textarea");
	if(autowidth) {
		if(!options.cols) { $(elem).css({width:"98%"});}
	} else if (!options.cols) { options.cols = 20; }
		if(!options.rows) { options.rows = 2; }
		if(vl===' ' || vl===' ' || (vl.length===1 && vl.charCodeAt(0)===160)){vl="";}
	elem.value = vl;
	setAttributes(elem, options);
	$(elem).attr({"role":"textbox","multiline":"true"});
break;

在此处$(elem).attr({"role":"textbox","multiline":"true"});通过添加"onkeyup"来实现,

$(elem).attr({"role":"textbox","multiline":"true","onkeyup":"adaption(this)"});

函数:adaption 自定义函数,可根据需要是否放入源码。

function adaption(dom){
    var val = dom.value;
    $(dom).height(val.split('\n').length * 20);

};

以上两点已经实现jqgrid在textarea状态回车撑起自身高度,但还需添加一句(在第2点源代码elem.value = vl后添加):

$(elem).height(elem.value.split('\n').length * 20);

完结!

小打小闹,欢迎指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值