validador de proveedor de datos de combobox chispa
Frecuentes
Visto 1,328 veces
0
Quiero dar validaciones al cuadro combinado chispa cuando el usuario ingresa un valor diferente al valor en el proveedor de datos de ese cuadro combinado. ¿Alguien puede darme el código de cómo dar validación si el usuario ingresa un valor diferente al valor en el proveedor de datos y en debe ocurrir la validación del cambio de enfoque. Gracias
1 Respuestas
0
puedes configurar la propiedad textInput
al cuadro combinado y administre la verificación de entrada desde la función asociada...
<fx:Script>
<![CDATA[
protected function change(event:TextEvent):void
{
}
]]>
</fx:Script>
<s:ComboBox textInput="change(event)"/>
flash.display.InteractiveObject.textInput
Se envía cuando un usuario ingresa uno o más caracteres de texto. Varios métodos de entrada de texto pueden generar este evento, incluidos teclados estándar, editores de métodos de entrada (IME), sistemas de reconocimiento de voz o voz e incluso el acto de pegar texto sin formato sin información de formato o estilo.
Tipo de evento:
flash.events.TextEvent.TEXT_INPUT
EDITAR
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.FlexEvent;
//dataprovider initialization
[Bindable]private var d:ArrayCollection = new ArrayCollection([
{name: "Values 1"}, {name: "Values 2"}, {name: "Values 3"}
]);
protected function change(event:TextEvent):void
{ // if enter key is pressed
if (event.text.charAt(event.text.length-1) == "\r")
{
// if the text inserted in the combobox is one of the
// item in the dataprovider
if (comboBox.selectedIndex >= 0)
Alert.show("something selected");
else // if the text is not an item in the dataprovider
Alert.show("nothing selected");
}
}
]]>
</fx:Script>
<s:ComboBox id="comboBox" textInput="change(event)"
dataProvider="{d}" labelField="name"/>
EDIT 2
Para establecer el color del borde desde actionscript, puede hacer lo siguiente:
comboBox.setStyle("borderColor","#ff0000"); // set the bordercolor to red
Si no necesita una verificación particular del texto insertado, simplemente puede configurar el cambio de propiedad en el ComboBox
protected function index_change(event:IndexChangeEvent):void
{
if (comboBox.selectedIndex >= 0 )
Alert.show("something selected")
else
Alert.show("nothing selected");
}
<s:ComboBox id="comboBox" dataProvider="{d}" labelField="name"
change="index_change(event)"
/>
contestado el 03 de mayo de 12 a las 10:05
Hola, Marcx, gracias por tu respuesta, pero ¿puedes decirme qué debo escribir dentro de ese controlador de eventos de cambio para enviar un mensaje de validación al usuario? - trinu
No estoy seguro de haber entendido correctamente lo que necesita, pero puede hacer algo así ... (verifique la edición en mi respuesta) - Marcx
Marcx, gracias por responder de nuevo. Entendiste correctamente lo que estaba preguntando. Usé tu código, pero ahora el problema es que también usé change='indexChangeHandler(event)'; junto con textInput = "cambio (evento)", pero ahora, cuando no se selecciona nada, no se debe llamar al evento de cambio, pero actualmente se está llamando. Cómo detener eso. También podría ser más útil si me dice cómo dar un error de validación con un borde rojo en lugar de mostrarlo en Alerta. - trinu
Muchas gracias. Por último, no puedo usar un validador de cadenas para determinar si el valor ingresado por el usuario está en el proveedor de datos del cuadro combinado para poder dar origen al validador de cadenas. En realidad, tengo muchos cuadros combinados que se crean dinámicamente, por lo que cuando el usuario ingresa valores incorrectos en el cuadro combinado y presiona el botón Guardar, todos los errores de validación deben aparecer como en el validador de cadenas. - trinu
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas actionscript-3 apache-flex actionscript flex4 or haz tu propia pregunta.
Si no desea que un usuario complete otros valores, ¿por qué no usa DropDownList? - RIAstar
El requisito es que debe ser editable y seleccionable, pero la lista desplegable no es editable y tampoco se selecciona la primera vez que el usuario presiona cualquier carácter en el teclado, debemos cambiar el enfoque para que se muestre el valor seleccionado en DropDownList. - Trinu