Foros del Web » Programando para Internet » Javascript »

Buscar valor en rango de inputs y aplicar condicion segun valor

Estas en el tema de Buscar valor en rango de inputs y aplicar condicion segun valor en el foro de Javascript en Foros del Web. hola a tod@s Tengo un grupo de campos dinamicos con el name ="tipo" y el Id = "tipo_1" este ultimo va incrementandose (tipo_1, tipo_2, tipo_3,...), ...
  #1 (permalink)  
Antiguo 07/04/2013, 04:55
 
Fecha de Ingreso: marzo-2011
Mensajes: 18
Antigüedad: 13 años, 8 meses
Puntos: 0
Buscar valor en rango de inputs y aplicar condicion segun valor

hola a tod@s

Tengo un grupo de campos dinamicos con el name ="tipo" y el Id = "tipo_1" este ultimo va incrementandose (tipo_1, tipo_2, tipo_3,...), mi problema es que necesito averiguar si en ese grupo hay por lo menos un valor concreto seleccionado, en este caso el valor seria "ADSL", y si es asi, modificar el valor del campo"promored" y de todos los campos "descuento" donde se cumpla la condicion de los campos "plan_1", "plan_2", "plan_3"...

El codigo que he creado para ello desde mi humilde saber, es el siguiente;

Código:
function contartipos(id){
var idtipo = document.getElementById(id).id;
var campotipo = document.getElementById('tipo').value;
var compruebatipo = document.getElementById(campotipo);
var promored = document.getElementById('promored');
var posicion = idtipo.substring(5);

for(var i=0; i < document.ofertared.compruebatipo.length; i++)
{
    if(document.getElementById(compruebatipo)[i].value == "ADSL")
    {
        promored.value = "Si";
        
       if(document.getElementById(plan).value == "29" | "39")
        {
            document.getElementById('descuento_'+posicion).value = "-9";
        }
    }
    if(document.getElementById(compruebatipo)[i].value != "ADSL")
    {
        promored.value = "No";
    }
}    
}
y estas son las partes del form

Código HTML:
<form name="ofertared">
<input id="promored" type="text" name="promored"/>
<select name="tipo" class="selectPetit" id="tipo_1" onchange="cargaContenido(this.id);contartipos(this.id);"><option value="0">Elige</option><option value="ADSL">ADSL</option><option value="Datos">Datos</option><option value="OFV">OFV</option><option value="Voz">Voz</option></select>
<select class="selectMedio" name="plan" id="plan_1" onchange="cargaContenido(this.id)"><option value="0">Elige</option><option value="10">Plan Base Pro</option><option value="17">Plan Base² Pro</option><option value="29">Plan Base³ Pro</option><option value="39">RED Pro</option></select>
<input readonly="readonly" id="descuento_1" type="text" name="descuento" value="0">
</form> 
Necesito que me digáis si esta forma que he planteado es la correcta pero tengo fallos de sintaxis del código y donde están los fallos, y en el caso de no ser el planteamiento, asesorarme de como lo tendría que hacer.

Gracias por vuestro tiempo. saludos
  #2 (permalink)  
Antiguo 07/04/2013, 13:13
 
Fecha de Ingreso: marzo-2011
Mensajes: 18
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Respuesta: Buscar valor en Array de inputs y aplicar condicion segun valor

Mientras esperaba respuesta he ido probando y descubriendo fallos y replanteo la pregunta ya que he cambiado la forma de lo que estaba haciendo y creo que es mas apropiada pero no me funciona.

En el conjunto de campos con name="tipohidd[]" me interesa saber si hay como minimo un valor "ADSL" y si es asi, modificar el valor del input con name="promored" a "Si" o "No"

Necesito que me digáis si esta forma nueva que he planteado es la correcta y donde estan los fallos, y en el caso de que este tampoco sea el planteamiento, asesorarme de como lo tendría que hacer.

Código:


Código Javascript:
Ver original
  1. var formulariored = document.forms.ofertared;
  2. var promoredinput = document.getElementById('promored');
  3. var controltipo = formulariored.elements['tipohidd[]'];
  4. var promorednom = "ADSL"
  5. for (var i = 0; i < controltipo.length; i++) {
  6.     var arraytipo = controltipo[i];
  7. }
  8. if ( arraytipo.indexOf(promorednom) > -1 )
  9. {
  10.     promoredinput.value = "Si";
  11. }
  12. else
  13. {
  14.     promoredinput.value = "No";
  15. }
El HTML implicado:

Código HTML:
<form name="ofertared" id="ofertared">
<input id="promored" type="text" name="promored"/>
<input type="hidden" name="tipohidd[]" id="tipohidd_1"/>
<input readonly="readonly" id="preuplan_1" type="text" name="preuplan" />
<input id="descuento_1" type="text" name="descuento_1" value="0"/>
</form> 
Gracias por vuestra atencion

Última edición por rsanz; 07/04/2013 a las 13:15 Razón: habia olvidado el ; en los if

Etiquetas: campos, input, inputs, rango, select, valor
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 18:29.