2013-09-10 5 views
0

У меня есть отключенное текстовое поле, и оно также readOnly, и я пытаюсь получить его, когда вы нажимаете на определенную кнопку, и это делает текстовое поле включенным и не readOnly, поэтому пользователь может редактировать его.Включить/отключить текстовое поле при нажатии на определенную кнопку на

Это то, что у меня есть мой код до сих пор:

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

Я бы сделал это, но я хочу, чтобы он был отключен и readOnly, а затем, когда они нажимают кнопку, они становятся там, где они могут редактировать текстовое поле. – user1676428

+0

Да, сначала оставьте их, но в обратном вызове, который выполняется при нажатии кнопки, вы должны программно удалить атрибуты 'disabled' и/или' readonly' в соответствии с ответом @ 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 вы найдете все методы TextField.

+0

Спасибо. Я смог использовать вышеприведенный код, а затем немного поправить его. Я закончил это только с тех пор, как у меня отключено текстовое поле и установите readOnly в true в моем xtype: '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

textfield.disable() - отключает текстовое поле

textfield.setReadOnly(readOnly) - нужно ли задавать текстовое поле readOnly или нет, передать true/false

+0

Спасибо за помощь всем. Но у меня такая же проблема, как и раньше. Когда я нажимаю на свою кнопку, она остается отключенной. Это код, который у меня есть в моем текстовом поле, не уверен, что это вообще помогает. { xtype: 'текстовое поле', fieldLabel: 'Текст поле', ID: 'текстовое поле', доступен только для чтения: верно, инвалидов: правда, ширина: 65 } – user1676428

+0

Может Предназначенный только дл чтени и отключать методы переопределяться свойства внутри текстового поля? Я попытался вытащить их, но, похоже, не имеет большого эффекта – user1676428

Смежные вопросы