2017-06-29 78 views
0

鼠标光标我已可变readOnly的ExtJS的6的TextArea readOnly的:如何限制内的textarea

bind:{ 
readOnly : '{someCondition}' 
} 

结合当textarea的具有readOnly的一个ExtJS6 textarea的:真,则在文本字段的点击鼠标光标位于内文本区域。我想在文本区域只读时限制鼠标光标。

使用“禁用”属性工作正常,不允许鼠标光标在文本区域内,但不显示带文本区域的垂直滚动条。因此不能使用这个属性。

请问您能否提出一些解决方案。

+0

for readOnly TextArea鼠标光标不应显示在textarea中。 – sorab

+0

通过只读你的意思是你不能编辑但是在文本框中看到光标吗?如果可能,你可以展示一些演示/图像? – Tejas

+0

当该字段是只读的,那么我不希望textarea内的鼠标光标。我使用this.blur(),但没有帮助。 – sorab

回答

0

你必须指定editable配置

bind:{ 
    readOnly : '{someCondition}' 
    editable : false({somecondition}) 
} 

fiddle

+0

可编辑也不起作用。鼠标光标仍然在文本里面。我使用this.blur()但那不起作用。 – sorab

+0

它工作请参阅小提琴。 https://fiddle.sencha.com/#view/editor&fiddle/22c0 –

+0

如果有数据,它不会显示滚动条。的代码为{ 的xtype: 'textareafield', 最大长度:100, 成长:真, growMin:10, growMax:90, , 绑定:{ 值: '(JSON数据)', readOnly的: '{一些条件}' }, allowBlank:真 } – sorab

0

@Ronak Patel提供的这个answer的小提琴似乎工作。如果您还想阻止用户使用鼠标选择文本区域中的文本,则可以将user-select设置为none。尽管这不是标准做法,但您也可以更改光标以向用户指示他们无法选择文本。 这些变化可以在writeableChange事件侦听器进行:

writeableChange: function() { 
         if (this.readOnly) { 
          this.inputEl.dom.style.userSelect = 'none'; 
          this.inputEl.dom.style.cursor = 'not-allowed'; 
         } else { 
          this.inputEl.dom.style.userSelect = 'inherit'; 
          this.inputEl.dom.style.cursor = 'inherit'; 
         } 
        } 

见更新小提琴here(使用复选框使textarea的只读或者没有)。