Comunidad de diseño web y desarrollo en internet online

validar varios checkbox con distintos nombre

Citar            
MensajeEscrito el 17 Feb 2011 12:44 pm
Hola a todos,

Ojala puedan ayudarme, necesito validar si estan seleccionados varios checkbox con distinta id. Una validación independiente podria ser, pero si se considera que el formulario tiene 30 checkbox derrepente no es el mejor camino.

Gracias!


Saludos. :D

Por padiazd

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2011 02:37 pm
Lo mejor en estos casos es usar una convención de nombres que se pueda recorrer (ch1, ch2 .... chn) en un loop para validarlos todos, si no se puede cambiar los nombres, meterlos en un array y recorrer el array con la misma idea

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Feb 2011 02:58 pm
Gracias!!

Ok, los coloque en una array y lo recorro, hasta ahi todo bien, pero no logro mostrarlos por pantalla :shock: lo debo estar haciendo mal o me falta algo?

Muchas gracias nuevamente! :D

Por padiazd

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2011 02:59 pm
¿Que es lo que quieres mostrar por pantalla? Pon el loop

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Feb 2011 03:00 pm
los checkBox, no se ven cuando los dejo adentro del array.
Ok, pruebo con loop.

Gracias.

Por padiazd

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2011 06:46 pm
Lo hice de la siguiente forma y anda todo perfecto, a excepcion de que no puedo manejar a nivel de diseño los checkBox...me podras ayudar con esto?

Gracias.

Código Flex :

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/05/29/displaying-checkbox-controls-using-the-repeater-in-flex/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
            xmlns:Componentes="Componentes.*">

   <mx:Panel id="panel" width="626" paddingLeft="10" verticalGap="10" height="319">
      <mx:Repeater id="checkBoxRepeater" dataProvider="{arr}">
         <mx:CheckBox id="checkBox"
                   label="{checkBoxRepeater.currentItem.label}"
                   data="{checkBoxRepeater.currentItem.data}"
                   />
      </mx:Repeater>
      <mx:ControlBar horizontalAlign="right">
         <mx:Button id="button"
                  label="Guardar"
                  emphasized="true"
                  click="button_click(event);" />
      </mx:ControlBar>
   </mx:Panel>
   
   <mx:Script>
      <![CDATA[
         
         
         import mx.controls.Alert;
         import mx.controls.CheckBox;
         import mx.core.FlexGlobals;
         
         private function button_click(evt:Event):void {
            var selArr:Array = [];
            var idx:int;
            var len:int = arr.length;
            
            for (idx=0; idx<len; idx++) 
            {
               if (checkBox[idx].selected)
               {
                  selArr.push(checkBox[idx].data); 
               }
            }
            var titulo:String = selArr.length + " de " + len + " item(s) seleccionados.";
            var mensaje:String = selArr.join("\n");
            Alert.show(mensaje, titulo);
         }
         
         private function doFilter(element:*, index:int, arr:Array):Boolean {
            return element.selected;
         }
         
      ]]>
   </mx:Script>
   
   <mx:Array id="arr">
      <mx:Object label="Guardar" data="Dia 1" />
      <mx:Object label="Guardar" data="Dia 2" />
      <mx:Object label="Guardar" data="Dia 3" />
      <mx:Object label="Guardar" data="Dia 4" />
      <mx:Object label="Guardar" data="Dia 5" />
      <mx:Object label="Guardar" data="Dia 6" />
      <mx:Object label="Guardar" data="Dia 7" />
      <mx:Object label="Guardar" data="Dia 8" />
      <mx:Object label="Guardar" data="Dia 9" />
      <mx:Object label="Guardar" data="Dia 10" />
      <mx:Object label="Guardar" data="Dia 11" />
      <mx:Object label="Guardar" data="Dia 12" />
      <mx:Object label="Guardar" data="Dia 13" />
      <mx:Object label="Guardar" data="Dia 14" />
      <mx:Object label="Guardar" data="Dia 15" />
      <mx:Object label="Guardar" data="Dia 16" />
      <mx:Object label="Guardar" data="Dia 17" />
      <mx:Object label="Guardar" data="Dia 18" />
      <mx:Object label="Guardar" data="Dia 19" />
      <mx:Object label="Guardar" data="Dia 20" />
      <mx:Object label="Guardar" data="Dia 21" />
      <mx:Object label="Guardar" data="Dia 22" />
      <mx:Object label="Guardar" data="Dia 23" />
      <mx:Object label="Guardar" data="Dia 24" />
      <mx:Object label="Guardar" data="Dia 25" />
      <mx:Object label="Guardar" data="Dia 26" />
      <mx:Object label="Guardar" data="Dia 27" />
      <mx:Object label="Guardar" data="Dia 28" />
      <mx:Object label="Guardar" data="Dia 29" />
      <mx:Object label="Guardar" data="Dia 30" />
      <mx:Object label="Guardar" data="Dia 31" />
      
   </mx:Array>
</mx:Application>

Por padiazd

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2011 07:31 pm
No entiendo algo (nunca he usado repeaters), los checkbox tienen todos el mismo id ... ¿te los está encontrando por checkBox[idx]?
Luego desde el punto de vista del diseño, mira los estilos disponibles para el componente (la ayuda te los lista al principio)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Feb 2011 01:14 pm
Lo hice de la forma que me lo planteaste anteriormente, ahora tengo la duda de como poder meter todos los checkbox en un arreglo y poder recorrerlos con un for para validar si han sido tickeados o no.

Gracias.

Saludos.

Por padiazd

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Feb 2011 02:33 pm
En realidad las condiciones del loop no sirven:

Código ActionScript :

if (checkBox[idx].selected)
               {
                  selArr.push(checkBox[idx].data); 
               }

Dado que la referencia no es válida. Mirando los dos de la clase repeater podrías hacer algo así

Código ActionScript :

   
var chbk = checkBoxRepeater.getChildAt(idx) as CheckBox
if (chbk.selected)
               {
                  selArr.push(chbk.data); 
               }


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.