Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:30.-ontextchanged:start [2019/05/16 17:31]
ary
wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:30.-ontextchanged:start [2021/03/02 12:07] (actual)
ary [Prop type=”T”]
Línea 4: Línea 4:
 \\ \\
  
 +==== Prop type=”T” ====
 +\\
 +^onTextChanged    |<WRAP>
 +**target**: Propiedad donde se produce el evento.\\  **keyPressed**: Tecla pulsada o todo el texto nuevo introducido de golpe (ej. por copiar y pegar)\\ **oldText**: Texto antes del cambio\\ **newText**: Texto ya cambiado\\
 +<code javascript onTextChanged.js>
 +function eventoOnTextChanged(evento) {
 + ui.showToast("onTextChanged! target: " + evento.target + "\nObjItem: " + evento.objItem + "\nTecla pulsada: " + evento.keyPressed + "\noldText: " + evento.oldText + "\nnewText: " + evento.newText);
 +}
 +</code>
 +</WRAP>   
 +^onTextLengthChanged    |length: Tamaño total del texto |    
 +^onFocusChanged    |isFocused: Si tiene focus o no el target |    
 +^onEditorAction    |(Para simplemente pulsar tecla intro o siguiente en el teclado) |    
 +\\   
  
 +Se ha implementado un nuevo método **setInputType()** en los type="T" que permite aplicar una máscara definido por atributo input-type en este tipo de prop, el cual se usa para mofificar el teclado que muestra y la mejor manera de hacerlo es junto al evento onTextChanged.
 +
 +**Ejemplo:**
 +
 +<code javascript>
 +
 +<prop name="MAP_INPUT_TYPE" type="T"   visible="1" title="Type T"    labelwidth="10" width="100%" height="7%" tmargin="1" input-type="numeric" ontextchanged="onTextChanged(e);"/>
 +
 +function onTextChanged(evento) {
 +    let control = ui.getView(evento.objItem)[evento.target];
 +    let nLength = evento.newLength;
 +    if (nLength > 3 && nLength < 6) {
 +        control.setInputType("text");
 +    } else if (nLength > 6 && nLength < 9) {
 +        control.setInputType("phone");
 +    } else if (nLength > 9) {
 +        control.setInputType("email");
 +    }
 +}
 +
 +</code>