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

废话不说,先上代码:

<form id="form_tKEim7ks" title="修改登录ID" bodyStyle="padding:5px 5px 0" url="editLogonId.dt" hidden="'$!{type}'!='logon'">
<items>
<container id="container_aj8Htzdm" layout="hbox" margin="5">
<items>
<container flex="1" id="container_Wgp4bbAx" />
<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="radiogroup_1" 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);
Ext.getCmp(textfieldId).clearInvalid();
}
});
}
}]]></listeners>
</radiogroup>
</items>
</container>
<textarea fieldLabel="备注" id="textarea_2" maxLength="200" name="memo" allowBlank="false" width="320" hideLabel="false" labelAlign="right" />
</items>
</container>
<container flex="1" id="container_PHlv1cJu" />
</items>
</container>
</items>
<dockedItems>
<toolbar dock="bottom" id="toolbar_MQsMGMoL">
<layout><![CDATA[{pack:"center"}]]></layout>
<items>
<button id="button_3" text="确认修改">
<handler><![CDATA[function (button, event) {
var form = this.up('form').getForm();
if (form.isValid()) {
var items = Ext.getCmp('radiogroup_1').items;
var logonId = '';
var newLogonId='';
var isModified=true;
(function(){
items.each(function(item,index,length){
var textfieldId = 'textfield_logonId'+(index+1);
if(item.getValue()){
console.log(Ext.getCmp(textfieldId));
newLogonId=Ext.getCmp(textfieldId).getValue();
logonId=Ext.getStore('arraystore_temp').getAt(index).data.oldLogonId;
if(newLogonId==logonId){
isModified=false;
Ext.getCmp(textfieldId).markInvalid('登录ID没有修改,请修改后再提交!');
}
return;
}
});
})();
alert(logonId+'+++'+newLogonId);
if(!isModified) return false;
return false;
form.submit({
params:{
'logonId':logonId,
'newLogonId':newLogonId
},
success: function (form, action) {
var info = action.result.info;
var title='';
console.log(info);
if(info.success){
title='成功';
}else{
title='失败';
}
Ext.Msg.alert(title,info.msg);
Ext.getStore("jsonstore_history").loadPage(1);
}
});
}
}]]></handler>
</button>
<button id="button_4" text="重置">
<handler><![CDATA[function(button,event){
Ext.getCmp('textarea_2').setValue('');
var store = Ext.getStore('arraystore_temp');
for(var i=0;i<store.count();i++){
var textfieldId = 'textfield_logonId'+(i+1);
Ext.getCmp(textfieldId).setValue(Ext.getStore('arraystore_temp').getAt(i).data.oldLogonId);
}
}]]></handler>
</button>
</items>
</toolbar>
</dockedItems>
</form>

实现功能如下图:[img]http://dl.iteye.com/upload/attachment/586993/ba88f59f-5c83-37c4-a080-4281733f2c4c.png[/img][img]http://dl.iteye.com/upload/attachment/586995/74c21d15-b5a2-3a5f-8fd6-6bb4a35354c5.png[/img][img]http://dl.iteye.com/upload/attachment/587014/6158b5e5-b0ac-33f3-b912-c71f063cba72.png[/img]
所有这一切都是纠结的radiogroup惹得祸
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值