JavaScript - evento onchange select option input text

 
Vista:
sin imagen de perfil

evento onchange select option input text

Publicado por Wasp (24 intervenciones) el 31/05/2016 11:53:28
Buenas a todos/as.

Tengo un select con los siguientes campos ["igual", "mayor", "menor", "vacio"].
Cuando el usuario pulsa sobre ["igual"] le aparece en la nueva ventana
1. un checkbox
2. un nuevo select con los siguientes campos ["pedido", "coste", "empresa"] (este select aparece cuando pulso sobre igual en el primer select mediante un evento onchange.)
3. un input text

Me gustaría que cuando el usuario pulsara sobre ["empresa"] se creará un nuevo input text.

Por tanto cuando el usuario ha pulsado sobre --> igual --> empresa --> apareciera el input primero (esta recogido en el punto 3 que he dicho antes) y ahora otro mas.

No tengo manera de poder manejarlo. Logro crear el segundo input text, pero nunca consigo que sea solo cuando el usuario pulsa sobre empresa, me lo hace cuando pulso sobre pedido, coste y empresa.

Me gustaría solo cuando el usuario pulsa sobre empresa.

Les estaría muy agradecido, no se si se puede por javascript o por jquery.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Juan Diego
Val: 4
Ha disminuido su posición en 240 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

evento onchange select option input text

Publicado por Juan Diego (37 intervenciones) el 31/05/2016 22:43:52
Hola Wasp,

En el segundo select, podrías aplicar otro evento change y aplicar la condición en la función:

Javascript:
1
2
3
4
5
6
function addInput(){
   var sel = getElementById('valores');
   if(sel.options[sel.selectedIndex].text === 'empresa'){
         //código para agregar input
   }
}

HTML
1
2
3
4
5
<select id="valores" onchange="addInput()">
    <option>pedido</option>
    <option>coste</option>
    <option>empresa</option>
</select>

Espero te sirva, feliz día.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

evento onchange select option input text

Publicado por anonymous (50 intervenciones) el 01/06/2016 04:22:21
buena esa es mas corto que el mio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

evento onchange select option input text

Publicado por Wasp (24 intervenciones) el 01/06/2016 09:18:30
Buenos días Juan Diego, eres mi salvador!!!!!

Muchísimas gracias. Acabo de probarlo y ha sido funcionar a la primera.
Que de horas me acabas de quitar encima.

A este mismo hilo tengo solo una duda, cuando pulso una vez sobre empresa, se me abre otro input text, por tanto maravilloso, pero he probado a volver a pulsarlo y evidentemente me salta otro,
¿habría alguna posibilidad de limitarlo solo a un input text?

Porque me veo que lo usuarios van a pulsarlo varias veces, no me preguntes como lo se, pero hay ciertos usuarios, simplemente asi.

De todas formas voy a pensar si hay alguna manera de poder limitarlo solo a insertar un unico input text.

Y nuevamente, muchas gracias, me has salvado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Diego
Val: 4
Ha disminuido su posición en 240 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

evento onchange select option input text

Publicado por Juan Diego (37 intervenciones) el 01/06/2016 16:24:19
Hola Wasp,

Realmente hay muchas maneras, por ejemplo, podrías crear una variable global boolean y dentro del código cambiar su valor para no volver a entrar a la condición, así:

1
2
3
4
5
6
7
8
var unaVez = true;
function addInput(){
   var sel = getElementById('valores');
   if(sel.options[sel.selectedIndex].text === 'empresa' && unaVez){
         //código para agregar input
         unaVez = false;
   }
}

El inconveniente es que las variables globales pueden ser accesadas por cualquier parte del código JavaScript.

La otra solución es que manejes un campo hidden y con la función modifiques el value:
1
<input type="hidden" value="1" id="unaVez">

1
2
3
4
5
6
7
8
function addInput(){
   var sel = getElementById('valores');
   var unaVez= getElementById('unaVez');
   if(sel.options[sel.selectedIndex].text === 'empresa' && unaVez.value == 1){
         //código para agregar input
         unaVez.value = 0;
   }
}

Espero te sirva, me comentas cualquier inquietud.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

evento onchange select option input text

Publicado por Wasp (24 intervenciones) el 01/06/2016 18:06:17
Buenas Juan Diego,

de nuevo muchísimas gracias y ha sido ponerlo y salir a la primera.

GRACIAS!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

evento onchange select option input text

Publicado por Wasp (24 intervenciones) el 29/06/2016 08:45:00
Buenas Juan Diego, estaba yo despues de mucho tiempo dandole vueltas a una cosilla a ver si era posible, supongo que seria modficar algo del codigo que me expusistes.

Cuando el usuario pulsa y se le añade un nuevo input text, cuando el usuario vuelve a elegir otra opcion que no conlleve un agregado mas de input text, no se como quitarlo.

No se si podria ser otra function como esta:

1
2
3
4
5
$(document).ready(function(){
	$("#selectPrecioEstimadoID").click(function(event){
		$("#textoPrecioEstimado2").remove();
	});
});

con el metodo remove de JQuery pero no se bien porque no funciona, a ver si sabrias como eliminarlo, una vez que el usuario pulse sobre otro select en vez del que abre un nuevo input.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar