Javascript Extjs中未启用“文件字段”按钮
Extjs中的文件字段类型工作不正常。最初,我将在代码中禁用此文件字段,当我启用此字段时,浏览按钮(选择文件的按钮)不会启用,但按钮功能正常。 这个问题有解决办法吗。请帮我做这个Javascript Extjs中未启用“文件字段”按钮,javascript,extjs,Javascript,Extjs,Extjs中的文件字段类型工作不正常。最初,我将在代码中禁用此文件字段,当我启用此字段时,浏览按钮(选择文件的按钮)不会启用,但按钮功能正常。 这个问题有解决办法吗。请帮我做这个 Ext.widget('panel', { title: 'Test panel', width: 400, height: 200, renderTo: 'codeoutput', layout: 'vbox', items: [ { xtype: 'container', layout: 'h
Ext.widget('panel', {
title: 'Test panel',
width: 400,
height: 200,
renderTo: 'codeoutput',
layout: 'vbox',
items: [
{
xtype: 'container',
layout: 'hbox',
items: [{
xtype: 'radiofield',
fieldLabel: 'PAN Number *',
margin: "20 0 0 0",
name: 'rb',
id: 'radioPan',
inputValue: '1',
checked: true,
listeners: {
change: function (cb, nv, ov) {
if (nv) {
Ext.getCmp('AttachData').disable();
Ext.getCmp('PanData').enable();
}
}
}
}, {
xtype: 'splitter'
}, {
xtype: 'textfield',
margin: "20 0 0 0",
id: 'PanData',
allowBlank: false,
disabled: false
}]
},
{
xtype: 'container',
html: '[ OR ]',
margin: "10 0 0 175"
},
{
xtype: 'container',
layout: 'hbox',
items: [{
xtype: 'radiofield',
fieldLabel: 'Owner\'s Declaration *',
margin: "10 0 0 0",
name: 'rb',
id: 'radioAttach',
inputValue: '2',
checked: false,
listeners: {
change: function (cb, nv, ov) {
if (nv) {
Ext.getCmp('PanData').disable();
Ext.getCmp('AttachData').enable();
}
}
}
}, {
xtype: 'splitter'
}, {
xtype: 'filefield',
id: 'AttachData',
name: 'file_path',
margin: "15 0 0 0",
buttonText: 'Browse',
disabled: true
}]
}]
});
我已选择“文件”字段,但“浏览”按钮已禁用
它似乎出现在ExtJs 4.1中
这在ExtJS 4.1.3版中得到了解决
我们可以通过在启用字段的同时删除这些'x-disabled x-btn-disabled x-item-disabled x-btn-default-small-disabled'
css类,并在禁用字段的同时再次添加这些类来解决问题。
因此,在禁用字段时添加了以下行:
Ext.select(".x-btn",Ext.getCmp('AttachData')).addCls('x-disabled x-btn-disabled x-item-disabled x-btn-default-small-disabled');
Ext.select(".x-btn",Ext.getCmp('AttachData')).removeCls('x-disabled x-btn-disabled x-item-disabled x-btn-default-small-disabled');
&启用该字段时添加了以下行:
Ext.select(".x-btn",Ext.getCmp('AttachData')).addCls('x-disabled x-btn-disabled x-item-disabled x-btn-default-small-disabled');
Ext.select(".x-btn",Ext.getCmp('AttachData')).removeCls('x-disabled x-btn-disabled x-item-disabled x-btn-default-small-disabled');
完整代码:
Ext.widget('panel', {
title: 'Test panel',
width: 400,
height: 200,
renderTo: 'codeoutput',
layout: 'vbox',
items: [
{
xtype: 'container',
layout: 'hbox',
items: [{
xtype: 'radiofield',
fieldLabel: 'PAN Number *',
margin: "20 0 0 0",
name: 'rb',
id: 'radioPan',
inputValue: '1',
checked: true,
listeners: {
change: function (cb, nv, ov) {
if (nv) {
Ext.getCmp('AttachData').disable();
Ext.getCmp('PanData').enable();
Ext.select(".x-btn",Ext.getCmp('AttachData')).addCls('x-disabled x-btn-disabled x-item-disabled x-btn-default-small-disabled');
}
}
}
}, {
xtype: 'splitter'
}, {
xtype: 'textfield',
margin: "20 0 0 0",
id: 'PanData',
allowBlank: false,
disabled: false
}]
},
{
xtype: 'container',
html: '[ OR ]',
margin: "10 0 0 175"
},
{
xtype: 'container',
layout: 'hbox',
items: [{
xtype: 'radiofield',
fieldLabel: 'Owner\'s Declaration *',
margin: "10 0 0 0",
name: 'rb',
id: 'radioAttach',
inputValue: '2',
checked: false,
listeners: {
change: function (cb, nv, ov) {
if (nv) {
Ext.getCmp('PanData').disable();
Ext.getCmp('AttachData').enable();
Ext.select(".x-btn",Ext.getCmp('AttachData')).removeCls('x-disabled x-btn-disabled x-item-disabled x-btn-default-small-disabled');
}
}
}
}, {
xtype: 'splitter'
}, {
xtype: 'filefield',
id: 'AttachData',
name: 'file_path',
margin: "15 0 0 0",
buttonText: 'Browse',
disabled: true
}]
}]
});
您使用的是哪个版本?谢谢您的回答,它在在线仿真器中工作。但在我的应用程序中,它不起作用。是否有其他方法。是否对文件字段使用相同的id
AttachData
?我已检查。。实际上,该代码在Chrome浏览器中运行良好,而不是在IE 11hi中。我在您的帮助下解决了问题。谢谢我已经更改了ext-all-dev.js主文件“this['buttonEl-btnEl'].dom.disabled=false”中的代码;这解决了启用问题