论坛首页 Web前端技术论坛

用html很好实现的功能,却在extjs中,如此蛋疼。。。

浏览 4830 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-11-11  
废话不说,先上代码:
<container flex="1" id="container_kNMePUTG">
  <listeners><![CDATA[{
	beforerender:function(me,opt){
		Ext.apply(Ext.form.field.VTypes, {
			mobile: function (val, field) {
				var mobile=  /^[0-9]{11}$/;
				return mobile.test(val);
			},
			mobileText: '非法手机号码'
		});
	}
  }]]></listeners>
  <items>
	<displayfield fieldLabel="卡ID" id="displayfield_gj12axv1" value="$!{userInfo.userId}" allowBlank="false" hideLabel="false" labelAlign="right" />
	<textfield id="textfield_YdgetgEU" name="userId" value="$!{userInfo.userId}" allowBlank="false" hideLabel="false" readOnly="true" hidden="true" labelAlign="right" />
	<container id="container_ol0CtESK" layout="hbox">
	  <items>
		<displayfield fieldLabel="登录ID" id="displayfield_nqs6Gm3a" hideLabel="false" readOnly="true" labelAlign="right" />
		<container id="container_logonId">
		  <listeners><![CDATA[{
			  beforerender:function(me,opt){
				  var disabled=false;
				  #foreach($item in $logonApps)
					  var vt ='';
					  if('$item.logonType'=='手机'){vt='mobile';}
					  else if('$item.logonType'=='邮箱'){vt='email';}
					  else{vt='alphanum';}
					  me.add(new Ext.form.field.Text({
						  value: '$item.logonId',
						  id:'textfield_logonId$velocityCount',
						  allowBlank:true,
						  vtype:vt,
						  disabled:disabled
					  }));
					  Ext.getStore('arraystore_temp').add({oldLogonId:'$item.logonId'});
					  disabled=true;
				  #end
			  }
			}]]></listeners>
		</container>
		<radiogroup id="container_logonType" layout="column" width="50" hideLabel="false" labelAlign="right">
		  <listeners><![CDATA[{
			  beforerender:function(me,opt){
				  var i =true;
				  #foreach($item in $logonApps)
					  me.add(new Ext.form.field.Radio({
						  inputValue: '$item.logonId',
						  id:'radio_Type$velocityCount',                                         
						  boxLabel:"$item.logonType",
						  name:'logonType',
						  checked:i
					  }));
					  i=false;
				  #end
			  },
			  change:function(me,newv,oldv,opt){
				var items = me.items;
				items.each(function(item,index,length){
					var textfieldId = 'textfield_logonId'+(index+1);
					if(item.getValue()){
						Ext.getCmp(textfieldId).setDisabled(false);
					}else{
						console.log(Ext.getStore('arraystore_temp').getAt(index));
						Ext.getCmp(textfieldId).setValue(Ext.getStore('arraystore_temp').getAt(index).data.oldLogonId);
						Ext.getCmp(textfieldId).setDisabled(true);
					}
				});
			  }
			}]]></listeners>
		</radiogroup>
	  </items>
	</container>
	<textarea fieldLabel="备注" id="textarea_mUUhk1gB" maxLength="200" name="memo" allowBlank="false" width="320" hideLabel="false" labelAlign="right" />
  </items>
</container>

实现功能如下图:
所有这一切都是纠结的radiogroup惹得祸
  • 大小: 5.9 KB
  • 大小: 7 KB
  • 大小: 7.6 KB
   发表时间:2011-11-16  
诡异的js风格
自己封装的标签库?
0 请登录后投票
   发表时间:2011-11-16  
哥们,这属于设计错误。
0 请登录后投票
   发表时间:2011-11-16  
说实话标签太垃圾了狗屎一坨!!
0 请登录后投票
   发表时间:2011-11-16  
这是XML吗
0 请登录后投票
   发表时间:2011-11-16  
为什么要封装成这样??
0 请登录后投票
   发表时间:2011-11-16  
楼主用的 ext tld??? 代码看的人真蛋疼...
建议直接用ExtJS, 其他方式的封装都很不靠谱(Ext Gwt用起来也挺蛋疼.)

看看这篇,搞一下开发环境,然后用ExtJS在来过
http://witcheryne.iteye.com/blog/585226

不是ExtJS问题,你懂得...
0 请登录后投票
   发表时间:2011-11-18  
原装多好,搞成这种标签混代码,真蛋疼!!!!!!!!!!!!!!!!!!!
0 请登录后投票
   发表时间:2011-11-18  
源生EXTJS radio控制两个textfield的disable属性 不就好了 格式检查什么的在创建textfield的时候写好 到时候只要哪个没有disable掉哪个的错误信息就会弹出 有必要这么麻烦么
0 请登录后投票
   发表时间:2011-11-30  
你系统得相当的慢了……
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics