【问题标题】:Enable/disable textfield when a certain button is clicked on单击某个按钮时启用/禁用文本字段
【发布时间】:2013-09-10 20:55:02
【问题描述】:

我有一个禁用的文本字段,它也是只读的,我试图在您单击某个按钮的地方获取它,它使文本字段启用而不是只读,以便用户可以编辑它。

到目前为止,这就是我的代码:

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

此代码不起作用,我知道有更好的方法来做到这一点。

【问题讨论】:

  • 您应该从文本元素 w3schools.com/jsref/met_element_removeattribute.asp 中删除 disabled 和/或 readonly 属性
  • 我会这样做,但我希望它被禁用和只读,然后当他们单击按钮时,它成为他们可以编辑文本字段的地方。
  • 是的,首先将它们留在其中,但是在他们单击按钮时执行的回调中,您应该按照@JustinRusso 的回答以编程方式删除disabled 和/或readonly 属性
  • 您能提供显示其禁用的文本字段的配置吗?另外,当你说不工作时,你到底是什么意思?

标签: javascript button extjs playframework textfield


【解决方案1】:

试试这个:

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 你会找到所有的文本字段方法。

【讨论】:

  • 谢谢。我能够使用上面的代码,然后稍微修改一下。我最终只是这样做了,因为我禁用了文本字段并在我的 xtype 中将 readOnly 设置为 true:'textfield'...bUpdateSwitch.on({'click': function (){ var yourtextfield = Ext.getCmp('textfieldid' ); yourtextfield .enable(); yourtextfield .setReadOnly(false);
【解决方案2】:

您可以使用以下代码:

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 只读,传真/假

【讨论】:

  • 感谢大家的帮助。但是我遇到了和以前一样的问题。当我单击我的按钮时,它仍然处于禁用状态。这是我在文本字段中的代码,不确定这是否有帮助。 { xtype:'textfield', fieldLabel: 'Text Field', id: 'textfield', readOnly: true, disabled: true, width: 65 }
  • readOnly 和 disable 方法是否可以被文本字段内的属性覆盖?我试着把它们拿出来,但似乎没有太大作用
猜你喜欢
  • 2018-06-18
  • 1970-01-01
  • 2012-05-23
  • 2020-10-20
  • 2012-10-25
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多