单击某个按钮时启用/禁用文本字段

时间:2013-09-10 20:55:03

标签: javascript button extjs playframework textfield

我有一个禁用的文本字段,它也是readOnly,我试图在你点击某个按钮的地方得到它,它使文本字段启用而不是readOnly所以用户可以编辑它。

到目前为止,这是我的代码所用的内容:

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

此代码无效,我知道有更好的方法可以执行此操作。

2 个答案:

答案 0 :(得分: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 readOnly,传递true / false

答案 1 :(得分: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您将找到所有文本字段方法。