Foros del Web » Programando para Internet » Javascript »

como valido textbox y combobox dinamicos con javascript

Estas en el tema de como valido textbox y combobox dinamicos con javascript en el foro de Javascript en Foros del Web. hola amigos, tengo una duda, necesito validar un textbox y un combobox dinamico, es decir tengo un listado de datos en una tabla html (estos ...
  #1 (permalink)  
Antiguo 10/09/2014, 07:52
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
como valido textbox y combobox dinamicos con javascript

hola amigos, tengo una duda, necesito validar un textbox y un combobox dinamico, es decir tengo un listado de datos en una tabla html (estos datos los traigo desde la bd) en la q tengo un check box en el listado y al seleccionar X checkbox q puede corresponder al producto 1 o el producto 7 etc cualquiera de la lista dme aparece al lado de este checkbox un textbox y un combobox para rellenarlos con la cantidad y el tipo y son estos dos el textbox y el combobox q dfeseo validar q no se ingresen vacios siempre y cuando estos sean seleccionados mediante el check box.

Código Javascript:
Ver original
  1. function  validacion()
  2. {
  3.  var inputs = document.getElementsByTagName('input');
  4.    
  5.    for(var i = 0; i < inputs.length; ++i)
  6.  
  7.    
  8.       if(inputs[i].type === 'text')
  9.         input elements values get cleared out.
  10.          if(inputs[i].value === '' && inputs[i].disabled != true)
  11.          {
  12.             alert("DEBE INDICAR LA CANTIDAD DE PRODUCTOS");
  13.            
  14.             //alert(inputs[i].disabled);
  15.              return;
  16.            
  17.          }
  18.  
  19. }

tengo esta validacion para validar q el o los textbox seleccionados no esten vacios pero solo me valida q el primer textbox seleccionado no este vacio ya q si selecciono mas textbox solo me valida el primero y no los restantes q seleccione.
como puedo hacerlo para validar los N textbox y combobox seleccionados par q ninguno de estos q hayan sido seleccionados no queden vacios??

de antemamo gracias, quedo atento a sus comentarios
  #2 (permalink)  
Antiguo 10/09/2014, 12:14
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: como valido textbox y combobox dinamicos con javascript

Si la cantidad de checkbox será fija, no veo necesidad de crear de manera dinámica a los textbox y combos, basta con que siempre estén ahí, los ocultes desde la hoja de estilos y cuando marques a alguno de los checkbox, muestres al textbox y combo que le corresponda. Luego, cuando vayas a validar que todos los campos de texto de los checkbox marcados no estén vacíos, tomas a los checkbox marcados, creando así un conjunto de elementos sobre el cual puedes iterar con una estructura repetitiva. En cada iteración, tomas al campo de texto que le corresponda al checkbox actual en la iteración y verificas la extensión de su contenido, si esta es falsa o igual a cero (0 equivale a false), muestras un mensaje de alerta, le das el enfoque al campo de texto en cuestión y sales del bucle.

Código HTML:
Ver original
  1. <form action = "ejemplo.php" onsubmit = "return validacion()">
  2.     <div>
  3.         Opción 1: <input type = "checkbox" id = "1" onclick = "fn(this)" />
  4.         <input type = "text" id = "txt1" />
  5.         <select id = "cmb1">
  6.             <option value = "foo">Foo</option>
  7.             <option value = "bar">Bar</option>
  8.         </select>
  9.     </div>
  10.     <div>
  11.         Opción 2: <input type = "checkbox" id = "2" onclick = "fn(this)" />
  12.         <input type = "text" id = "txt2" />
  13.         <select id = "cmb2">
  14.             <option value = "foo">Foo</option>
  15.             <option value = "bar">Bar</option>
  16.         </select>
  17.     </div>
  18.     <div>
  19.         Opción 3: <input type = "checkbox" id = "3" onclick = "fn(this)" />
  20.         <input type = "text" id = "txt3" />
  21.         <select id = "cmb3">
  22.             <option value = "foo">Foo</option>
  23.             <option value = "bar">Bar</option>
  24.         </select>
  25.     </div>
  26.     <input type = "submit" />
  27. </form>

Código CSS:
Ver original
  1. [id^=txt], [id^=cmb]{
  2.     display: none;
  3. }

Código Javascript:
Ver original
  1. function fn(elem){
  2.     var textbox = document.querySelector("#txt" + elem.id),
  3.         select = document.querySelector("#cmb" + elem.id);
  4.     if (elem.checked){
  5.         textbox.style.display = "block";
  6.         select.style.display = "block";
  7.     }
  8.     else{
  9.         textbox.style.display = "none";
  10.         select.style.display = "none";
  11.     }
  12. }
  13.  
  14. function validacion(){
  15.     var checkbox = document.querySelectorAll("[type=checkbox]:checked"),
  16.         total = checkbox.length;
  17.     for (var i = 0; i < total; i++){
  18.         var textbox = document.querySelector("#txt" + checkbox[i].id);
  19.         if (!textbox.value.length){
  20.             alert("Tienes que ingresar datos en este campo");
  21.             textbox.focus();
  22.             return false;
  23.         }
  24.     }
  25.     return true;
  26. }

La función termina retornando el valor true o false, según sea el caso. Si se haya a algún campo de texto vacío, se retorna false, con lo cual paramos al bucle y no enviamos la información del formulario, pero si todos los campos de los checkbox marcados contienen datos, se retorna true y se envía la información del formulario.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 10/09/2014, 12:50
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: como valido textbox y combobox dinamicos con javascript

graciass alexis probare y te comento
  #4 (permalink)  
Antiguo 11/09/2014, 13:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: como valido textbox y combobox dinamicos con javascript

Alexis88 otra pregunta como lo hago para tb agregar q me valide tambien cuando los combobox tambien esten vacios??? es decir para q no me permita ingresar vacios ni los textbox ni los combobox seleccionados con los checkbox lo probe haciendolo asi
Código Javascript:
Ver original
  1. function fn(elem){
  2.         var textbox = document.querySelector("#txt" + elem.id),
  3.             select = document.querySelector("#cmb" + elem.id);
  4.         if (elem.checked){
  5.             textbox.style.display = "block";
  6.             select.style.display = "block";
  7.         }
  8.         else{
  9.             textbox.style.display = "none";
  10.             select.style.display = "none";
  11.         }
  12.     }
  13.      
  14.     function validacion(){
  15.         var checkbox = document.querySelectorAll("[type=checkbox]:checked"),
  16.             total = checkbox.length;
  17.         for (var i = 0; i < total; i++){
  18.             var textbox = document.querySelector("#txt" + checkbox[i].id);
  19.             var comboBox = document.querySelector("#cmb" + checkbox[i].id);
  20.             if (!textbox.value.length && !comboBox.value.length){
  21.                 alert("Tienes que ingresar datos en este campo");
  22.                 textbox.focus();
  23.                 return false;
  24.             }
  25.         }
  26.         return true;
  27.     }



pero solo me sigue validando q los textbox no esten vacios y los combobox no me valida q no esten vacios, de antemano gracias y quedo atento a tus comentarios slds.
  #5 (permalink)  
Antiguo 11/09/2014, 14:05
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: como valido textbox y combobox dinamicos con javascript

Tengo dos preguntas que hacerte:
  1. ¿En qué momento llenas a los combos?
  2. ¿Por qué no los cargas de datos desde el inicio?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 11/09/2014, 14:11
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: como valido textbox y combobox dinamicos con javascript

hola alexis los combos los lleno al igual q los textbox en el momento q q aparecen al cliquear el checkbox y y estos (los combobox deben ser llenados por el usuario de forma obligatoria al igual q los textbox) por lo q no los cargo con datos desde el inicio ya q el usuario debe completarlos, gracias de antemano y quedo atento a tu respuesta slds.
  #7 (permalink)  
Antiguo 11/09/2014, 14:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: como valido textbox y combobox dinamicos con javascript

En ese caso y ya que veo que estás tomando al combo respectivo en cada iteración, solo te queda verificar si la cantidad de opciones que posee es mayor a cero; de no ser así, se mostrará la alerta.

Código Javascript:
Ver original
  1. function validacion(){
  2.     var checkbox = document.querySelectorAll("[type=checkbox]:checked"),
  3.         total = checkbox.length;
  4.     for (var i = 0; i < total; i++){
  5.         var textBox = document.querySelector("#txt" + checkbox[i].id),
  6.             comboBox = document.querySelector("#cmb" + checkbox[i].id);
  7.  
  8.         if (!textBox.value.length || !comboBox.options.length){
  9.             alert("Tanto el campo de texto como el combo deben de contener datos");
  10.             if (!textBox.value.length) textBox.focus(); //Solo si la caja está vacía
  11.             return false;
  12.         }
  13.     }
  14.     return true;
  15. }

Solo era cuestión de acceder al conjunto de opciones del combo mediante la propiedad options.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 12/09/2014, 07:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: como valido textbox y combobox dinamicos con javascript

muchas gracias alexis, pero ahora porfa otra duda si es q puedes ayudarme, esta pregunta es, ¿como puedo setear a vacio el combobox y el textbox dinamico si es q el usuario se arrepiente y quita el checked?
espero explicarme bies, quedo atento a tu respuesta de antemano gracias slds.
  #9 (permalink)  
Antiguo 12/09/2014, 10:42
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: como valido textbox y combobox dinamicos con javascript

Creo que deberías de empezar a buscar por tu cuenta, ya te he ayudado con más de lo que has pedido inicialmente. Para el campo de texto, solo haz esto:

Código Javascript:
Ver original
  1. textbox.value = null;

Y para el combo, esto:

Código Javascript:
Ver original
  1. select.innerHTML = null;

Todo esto en la función fn y cuando vayas a ocultar a dichos elementos (cuando desmarques al checkbox).

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: combobox, dinamicos, html, input, textbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:24.