2013-09-10 97 views
0

我有一个禁用的文本框,它也只读,我试图让它在你点击某个按钮的地方,它使文本框启用,而不是只读,所以用户可以编辑它。当某个按钮被点击时启用/禁用文本框

这就是我对我的代码至今:

buttonid.on({'click': function(){ 
     if(Ext.getCmp('textfieldid').getForm().isDirty()){ 
      Ext.getCmp('textfieldid').setDisabled(false); 
     } 
     else{ 
      Ext.getCmp('textfieldid').setDisabled(true); 
     } 
    }}); 

此代码不能正常工作,我知道有一个更好的方式来做到这一点。

+0

您应该从文本元素中删除'disabled'和/或'readonly'属性http://www.w3schools.com/jsref/met_element_removeattribute.asp – Plato

+0

我会这样做,但我希望它被禁用并且只读,然后当他们点击按钮时,它就成为他们可以编辑文本框的位置。 – user1676428

+0

是的,首先留下他们,但是在他们点击按钮时执行的回调中,您应该按照@ JustinRusso的回答 – Plato

回答

0

试试这个:

buttonid.on({'click': function(){ 
     var yourTextField = Ext.getCmp('textfieldid'); 
     if(yourTextField.getForm().isDirty()){ 
      yourTextField.enable(); 
      yourTextField.setReadOnly(false); 
     } 
     else{ 
      yourTextField.disable(); 
      yourTextField.setReadOnly(true); 
     } 
    }}); 

Here,你会发现所有的文本字段的方法。

+0

谢谢。我能够使用上面的代码,然后修补一下。我结束了这样做,因为我禁用了textfield,并在我的xtype中设置了readOnly为true:'textfield'... bUpdateSwitch.on({'click':function(){var yourtextfield = Ext.getCmp('textfieldid '); \t yourtextfield .enable(); \t yourtextfield .setReadOnly(false); – user1676428

0

您可以使用下面的代码:

buttonid.on('click', function(){ 
    var textF = Ext.getCmp('textfieldid'); 
    if(Ext.getCmp('textfieldid').isDirty()) { 
     textF.enable(); // enable textfield 
     textF.setReadOnly(false); // can edit field 
    } 
    else{ 
     textF.disable(); // disable textfield 
     textF.setReadOnly(true); // read only is true, so can not edit 
     // Any way, you do not need to set field readOnly if you disable it, cause user will not be able to modify it. 
    } 
}); 

下面是引用在上面的代码中使用的方法:

textfield.enable() - 使文本框

textfield.disable() - 禁用文本框

textfield.setReadOnly(readOnly) - 是否设置textfield只读或不是,通过true/false

+0

感谢所有帮助家伙。但是我遇到了和以前一样的问题。当我点击我的按钮时,它仍然是禁用的。这是我在我的文本字段中的代码,不知道这是否有帮助。 { 的xtype: '文本字段', FieldLabel联合: '文本字段', ID: '文本字段', readOnly的:真, 禁用:真, 宽度:65 } – user1676428

+0

能只读和禁用方法由重写textfield内的属性?我试图将它们取出,但似乎没有太大影响 – user1676428

相关问题