jQuery MiniUI

 找回密码
 立即注册
查看: 9341|回复: 11
打印 上一主题 下一主题

紧急求助!js生成的datagrid的单元格的编辑文本框添加css类 [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2014-7-16 10:33:40 |只看该作者 |倒序浏览
紧急求助!!!
用js生成datagrid时,有单元格编辑功能,如何给editor添加css样式类?!

  1. {
  2.                   field: "OutAmount",
  3.                   header: "实际出库数量",
  4.                   //width: 60,
  5.                   headerAlign: "center",
  6.                   allowSort: false,
  7.                   editor: {
  8.                     type: "textbox",
  9.                     "class": "ime-inactive"
  10.                   }
复制代码
这样是无效的——“ime-inactive”类根本没加上!
坐等回复!!!!

Rank: 8Rank: 8

沙发
发表于 2014-7-16 11:09:27 |只看该作者
本帖最后由 felt 于 2014-7-16 11:11 编辑

不行,动态生成的通过type来辨识编辑器的,class无效
你需要通过添加class实现什么效果

Rank: 4

板凳
发表于 2014-7-16 12:21:47 |只看该作者
怎么回事,我回复你怎么提示包含非法信息,无法提交?!!

Rank: 4

地板
发表于 2014-7-16 12:26:04 |只看该作者
这是怎么回事?



附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 4

5#
发表于 2014-7-16 12:27:12 |只看该作者

???

felt 发表于 2014-7-16 11:09
不行,动态生成的通过type来辨识编辑器的,class无效
你需要通过添加class实现什么效果
...

Rank: 4

6#
发表于 2014-7-16 12:29:07 |只看该作者
felt 发表于 2014-7-16 11:09
不行,动态生成的通过type来辨识编辑器的,class无效
你需要通过添加class实现什么效果
...

我加class是为了禁用输入法

Rank: 8Rank: 8

7#
发表于 2014-7-16 13:29:50 |只看该作者
x-strong 发表于 2014-7-16 12:29
我加class是为了禁用输入法

估计你回复的里面有敏感词,dicuzz系统抽了

监听oncellbeginedit事件,这样试试
function onCellBeginEdit(e){
   var el=e.editor.getEl()
   $(el).addClass(className)
}

Rank: 4

8#
发表于 2014-7-16 13:40:13 |只看该作者
felt 发表于 2014-7-16 13:29
估计你回复的里面有敏感词,dicuzz系统抽了

监听oncellbeginedit事件,这样试试

截图你看到了,哪有什么敏感词啊

Rank: 8Rank: 8

9#
发表于 2014-7-16 14:46:31 |只看该作者
x-strong 发表于 2014-7-16 13:40
截图你看到了,哪有什么敏感词啊

我们不用讨论的敏感词问题,这个论坛系统用的discuzz,他到底设置了什么敏感词,我们不清楚
用我提供的方法你试一下

Rank: 4

10#
发表于 2014-7-16 16:38:11 |只看该作者
本帖最后由 x-strong 于 2014-7-16 16:41 编辑
felt 发表于 2014-7-16 14:46
我们不用讨论的敏感词问题,这个论坛系统用的discuzz,他到底设置了什么敏感词,我们不清楚
用我提供的方 ...

不行的,因为miniui的控件都是用html元素嵌套包装而成,而且指定添加的样式是应用在外层的span元素上,而不是应用到html原生的控件。用版主提供的方法:
  1. function onCellBeginEdit(e){
  2.    var el=e.editor.getEl()
  3.    $(el).addClass(className)
  4. }
复制代码
得到如下结果,显然,文本框的输入法是不会被禁用的,请看截图和生成的html代码:




  1. <div class="mini-grid-editwrap" style="left: 1058px; top: 139px; width: 147px; display: block; position: absolute; z-index: 1001;"><span title="" class="mini-textbox" id="mini-104" style="border-width: 0px; width: 147px;"><input class="mini-textbox-input  ime-disabled" style="width: 143px;" type="text" placeholder="" autocomplete="off" /><input type="hidden" value="32.3" /></span></div>
复制代码
不过,版主提供的方法做一下修改或者CSS样式做一下调整是可以达到目的的:

方案一:修改onCellEdit方法:



  1. grid.on('cellBeginEdit', function (e)
  2.   {
  3.     //var el = e.editor.getEl();
  4.     //$(el).addClass('ime-disabled');
  5.    
  6.     var textbox = $(e.editor.getEl()).children("input[type=text]").first();
  7.     textbox.addClass('ime-disabled');   
  8.   });
复制代码
方法二:修改CSS样式类:

  1. .ime-disabled input[type=text]
  2. {
  3.      ime-mode: disabled;
  4. }
  5. onCellBeginEdit方法:
  6. grid.on('cellBeginEdit', function (e)
  7. {
  8.     var el = e.editor.getEl();
  9.     $(el).addClass('ime-disabled');
  10. });
复制代码

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Archiver|普加软件

GMT+8, 2025-7-1 04:05 , Processed in 1.043876 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部