ExtJs_FireFox表格换行和Textarea长度截取的逗逼故事

  做了一段的ExtJs,总是发现很多时候在每个浏览器下面都会有这样或者那样的错误.或者格式异常,我现在还没有牛逼到直接改所谓的样式,不过可以想别的办法.比如在IE和Chorme下,数据单元格内容如果超过长度限制的话,会自动截取适当长度然后后面补 ...   ,但是FireFox就是个奇葩,这货就是无限的延长啊啊啊啊.看着都揪心.用人类的话就是这货实诚.

 1     /**
 2      * 2014-9-16 12:55 
 3      * zhaolf 
 4      * 
 5      * @火狐浏览器 下需要 其余浏览器支持自动换行 FF下呈现Grid单元格内容时,如果内容超长,则换行显示 * 只需在单元格后添加下面属性
 6      *        renderer: renderAutoNewLine
 7      */
 8     var renderAutoNewLine = function(v) {
 9         return "<div style='word-wrap:break-word;word-break: break-all;' mce_style='word-wrap:break-word;word-break: break-all;'>" + v + "</div>";
10     }

  用的时候只需要在相应字段下加上     renderer: renderAutoNewLine  就万事大吉了

  //我是贱贱的分割线*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*--*-*-*-*我还是分割线,可是我不贱//

  有时候需要textarea,但是后台限制字数怎么办?提交到后台验证长度再返回消息?这样多不友好 ^. ^ 还不如直接判断来的爽快.都在前台做好,符合格式了再提交.一遍过,省的那么麻烦.要是中间出什么差错多不好.

    /** ************************************************ */
    /**
     * @author zhaolf
     * @history 2014/11/20 限制textarea输入框文字长度,过长自动截取字符串
     */
//    String.prototype.len = function() {
//        return this.replace(/[^\x00-\xff]/g, "rr").length;
//    }
    String.prototype.checkMaxLength = function(lenTemp) {

//        var len = 0;
//        for (var i = 0; i < this.length; i++) {
//            if (this.charCodeAt(i) > 255) {
//                len += 2;
//            } else {
//                len += 2;
//            };
//        }

//        var r = /[^\x00-\xff]/g;
        if (this.length <= lenTemp)
            return this;
        //var m = Math.floor(lenTemp / 2);
        for (var i = lenTemp; i < this.length; i++) {
            if (this.substr(0, i).length >= lenTemp) {
                hs.MessageHelper.info({
                            msg : '注意:文字长度不能超过' + lenTemp + '个字,系统将自动去掉超出文字'
                        });
                return this.substr(0, i);
            }
        }
        return this;
    };
    /** ****************************************************** */

  注释什么的是计算汉字和英文差异的,起先是想按照字符算的~但是项目里需求是发短信,这要是按照字符算,容易出现半个字符.所以按照整字来吧~

 1   xtype : 'textarea',
 2   fieldLabel : '下发地描述',
 3   name : 'areamemo',
 4   height : '35',
 5   anchor : '95.5%',
 6   listeners : {
 7     change : {
 8         fn : function(o) {
 9           o = o.getValue().checkMaxLength(100);//设置最大字数 为100
10           Ext.getCmp('XZForm').getForm().setValues({//获取form设置回填的值
11                   areamemo : o
12             });
13            }
14           }
15         }

  这么一来就可以实现自动截取了,如果不是最后一个填空的话,可以设置change为onblur. 不过这个关系不大啦~

 

  叶落星辰  W

 

转载于:https://www.cnblogs.com/may26/p/4224237.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值