2012-08-01 16 views
7

Estoy utilizando un cuadro combinado ExtJS. Hay un cursor de mecanografía cuando se enfoca en el cuadro combinado. Intenté implementar editable: false al crear el combobox, pero me ayudó solo con Chrome.cursor escribir de cuadro combinado

También se ha probado la función clearListeners() para ver si esto funciona con ese cursor - no ayudó, todavía aparece en FireFox e IE.

La otra idea es establecer disabled en el campo de entrada en el cuadro combinado. Cuando lo hice manualmente, me ayudó.

Pero cuando escribí la siguiente

Ext.get('bu-encodingcount-combobox').select('input').set({disabled:'disabled'});

que no ayuda - no sé, tal vez la expresión es incorrecta.

Respuesta

12

La razón por la que ve un cursor es porque el cuadro combinado obtiene el foco, por lo que la forma más fácil de manejar esto es mover el foco al selector desplegable cada vez que el combo obtiene el foco.

sólo tiene que añadir este onFocus de configuración para la configuración del cuadro combinado:

// example combobox config 
xtype: 'combo', 
allowBlank: false, 
forceSelection: true, 
valueField:'id', 
displayField:'name', 
store: myStore, 

// add this "onFocus" config 
onFocus: function() { 
    var me = this; 

    if (!me.isExpanded) { 
     me.expand() 
    } 
    me.getPicker().focus(); 
}, 

Además, yo sólo recomiendo hacer esto si se trata de un cuadro combinado forceSelection: true. Arruinará la capacidad de los usuarios de escribir algo en el campo.

+0

cómo hacer cursor cuando la libración de campo combinado? – freestyle

+0

Además, si su tienda se está cargando en el menú desplegable, puede cargar la tienda en el evento de enfoque como tal: myStore.load(); Inicialmente este fue mi problema, hasta que me di cuenta de que la tienda todavía no estaba cargada. Espero que esto ayude a otros. –

+1

Para obligar a que esto funcione en todos los navegadores en Ext 5 ahora tiene que usar me.getPicker() enfocar (verdadero).; –

3

Puedes añadir el config,

editable: falsa

se comporta entonces como el Combo normal.

+0

Desafortunadamente, existe un problema conocido de que esto solo funciona en Chrome, que es lo que está tratando de resolver. –

0

Try -

Para IE

combo.inputEl.set ({discapacitados: 'desactivado'});

Para Firefox -

combo.inputWrap.set ({discapacitados: 'desactivado'});

para Chrome -

combo.inputCell.set ({discapacitados: 'desactivado'});

Este trabajo fino.

Cuestiones relacionadas