2013-09-10 127 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

相關問題