日期:2014-05-16  浏览次数:20387 次

Extjs NumberField后面加单位,UnitText
UnitText.js

=======================

// 输入框textfield后面放字unitText定义:
Ext.override(Ext.form.TextField, {
 unitText : '',
 onRender : function(ct, position) {
  Ext.form.TextField.superclass.onRender.call(this, ct, position);

  if (this.unitText != '') {
   this.unitEl = ct.createChild({
      tag : 'div',
      html : this.unitText
     });
   this.unitEl.addClass('x-form-unit');
   // 增加单位名称的同时按单位名称大小减少文本框的长度 初步考虑了中英文混排 未考虑为负的情况
   this.width = this.width
     - (this.unitText.replace(/[^\x00-\xff]/g, "xx").length * 6 + 2);
   // 同时修改错误提示图标的位置
   this.alignErrorIcon = function() {
    this.errorIcon.alignTo(this.unitEl, 'tl-tr', [2, 0]);
   };
  }
 }
});

 

将UnitText.js放入到jsp文件中,加上css样式,如下:

<style>
      .x-form-unit {  
       height: 22px;  
       line-height: 22px;  
       padding-left: 2px;  
       display: inline-block;  
       display: inline;  
   } 
</style>
<script type="text/javascript" src="UnitText.js"></script>

 

这样就可以用了,使用方法如下:

var jine = new Ext.form.NumberField({
    id : 'je',
    fieldLabel : '金额',
    allowDecimals : true, // 允许小数点?
    allowNegative : false, // 允许负数?
    width : 100,
    style : 'text-align:right',
    unitText : ' 元'
   });
1 楼 wangemperor 2011-11-01  
ie下不好用
2 楼 bovxiu2 2012-08-22  
我在谷歌下 怎么不能用啊
3 楼 bovxiu2 2012-08-22  
浏览器下都不行啊  请教 我QQ 632249106