Foros del Web » Programando para Internet » Javascript »

Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Estas en el tema de Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ??? en el foro de Javascript en Foros del Web. Hola. Puedes ver que este por ser CAMPO TEXT funciona de maravilla: Código: <form action="" id="formfact1" onsubmit="if(document.forms.formfact1.fact_pagada.value!=1){ document.forms.formfact1.fact_pagada.value='Cambiado!'; alert(document.forms.formfact1.fact_pagada.value); }"><input type="text" name="fact_pagada"><input type="submit" value="Guardar Factura" ...
  #1 (permalink)  
Antiguo 09/01/2013, 12:58
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Hola.

Puedes ver que este por ser CAMPO TEXT funciona de maravilla:
Código:

<form action="" id="formfact1" onsubmit="if(document.forms.formfact1.fact_pagada.value!=1){
document.forms.formfact1.fact_pagada.value='Cambiado!';
alert(document.forms.formfact1.fact_pagada.value);
}"><input type="text" name="fact_pagada"><input type="submit" value="Guardar Factura" class="b" /></form>
Pero este por ser un CAMPO SELECT me ha hecho perder horas... !!!
Código:
<form action="" id="formfact2" onsubmit="if(document.forms.formfact2.fact_pagada.value!=1){
document.forms.formfact2.fact_pagada.value='Cambiado!';
alert(document.forms.formfact2.fact_pagada.value);
}"><select name="fact_pagada"><option value="Algo1">Algo 1</value><option value="Algo2">Algo 2</value></select><input type="submit" value="Guardar Factura" class="b" /></form>
Cómo puedo manipular EL VALUE del campo SELECT???
  #2 (permalink)  
Antiguo 09/01/2013, 13:13
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Antes de hacer lo que tengas que hacer comenzá por cerrar bien tus etiquetas y no se de donde sacaste que hay una etiqueta llamada <value>, value es 1 atributo
  #3 (permalink)  
Antiguo 09/01/2013, 13:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

El value de un select se comporta de manera diferente. Debe haber una opción con ese texto, y para mostrarlo cambiar el valor del select por el valor de esa opción o seleccionarlo por el índice.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 09/01/2013, 13:25
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Cita:
Iniciado por David Ver Mensaje
Debe haber una opción con ese texto, y para mostrarlo cambiar el valor del select por el valor de esa opción o seleccionarlo por el índice.
Gracias David.

Efectivamente son MUY DIFERENTES.

Necesito colocar un VALUE que no está en la LISTA:
Código PHP:
<form action="" id="formfact2" 
onsubmit="if(document.forms.formfact2.fact_pagada.value!=1){ 
document.forms.formfact2.fact_pagada.value='Cambiado!'; 
alert(document.forms.formfact2.fact_pagada.selectedIndex+document.forms.formfact2.fact_pagada.value);
return false;
}"
><select name="fact_pagada"><option value="Algo1">Algo 1</option><option 
value
="Algo2">Algo 2</option></select><input type="submit" value="GuardarFactura" class="b" /></form
Necesito cambiar el selectedIndex con un value que no existe en la lista.

Sí puede hacerse?
  #5 (permalink)  
Antiguo 09/01/2013, 13:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Con una opción que no existe en la lista no es posible que yo sepa.

Solo si simulas un select con un campo text mostrando la lista desplegable con Javascript.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 09/01/2013, 13:44
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Cita:
Iniciado por David Ver Mensaje
Con una opción que no existe en la lista no es posible que yo sepa.
Eso es justo lo que requiero.

Y espero que se pueda, (esto es JavaScript!)
Cita:
Iniciado por David Ver Mensaje
Solo si simulas un select con un campo text mostrando la lista desplegable con Javascript.
Aqui enseño lo requerido de manera puntual:
Código PHP:
<form action="" id="formfact2" 
onsubmit="if(document.forms.formfact2.fact_pagada.value!=1){
document.forms.formfact2.fact_pagada.value='Cambiado por un valor DINAMICO!'; 
}"
><select name="fact_pagada"><option value="Algo1">Algo 1</option><option 
value
="Algo2">Algo 2</option></select>
<
input type="submit" value="GuardarFactura" class="b" /></form
De que manera puedo cambiar ese valor del value que corresponde al selectedIndex ?

Solo veo esto:
http://www.desarrolloweb.com/articulos/1027.php
  #7 (permalink)  
Antiguo 09/01/2013, 13:55
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Cita:
Iniciado por David Ver Mensaje
Debe haber una opción con ese texto.
Gracias por tu ayuda David.

Efectivamente existe la opción. Aki esta:
Código PHP:
<form action="" id="formfact2" 
onsubmit="if(document.forms.formfact2.fact_pagada.value!=1){ 
document.forms.formfact2.fact_pagada.options[0].value='Cambiado!'; 
alert(document.forms.formfact2.fact_pagada.value);
return false;
}"
><select name="fact_pagada"><option value="Algo1">Algo 1</option><option 
value
="Algo2">Algo 2</option></select><input type="submit" value="GuardarFactura" class="b" /></form
Lo bueno sería hallar la manera de cambiar el value del índice option[*] donde * es "desconocido por el Script".

Lo hallé fácil por que sé de santemano que mi índice es 0, pero si tenemos 200 options... ¿?

Salu2!

:)
  #8 (permalink)  
Antiguo 09/01/2013, 13:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Quizás si nos explicas por qué necesitas hacerlo podamos encontrar alguna forma.

Por ejemplo, si es por el valor que quieres recibir en el servidor podrías guardar en un campo oculto donde sí puedes cambiar el valor como quieras; quizás si sabemos por qué lo necesitas podamos recomendar mejores opciones.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 09/01/2013, 13:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

¿Probaste esto?:
Código Javascript:
Ver original
  1. document.forms.formfact2.fact_pagada.options[document.forms.formfact2.selectedIndex].value='Cambiado!';
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 09/01/2013, 14:14
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Cita:
Iniciado por David Ver Mensaje
¿Probaste esto?:
Código Javascript:
Ver original
  1. document.forms.formfact2.fact_pagada.options[document.forms.formfact2.selectedIndex].value='Cambiado!';
Tu linea es interesante David.

Si miras mas arriba, en el mismo minuto de tu MSJ respondí con una solución, (limitada al INDEX 0), la cual reescribo:
Código PHP:
<form action="" id="formfact2" 
onsubmit="if(document.forms.formfact2.fact_pagada.value!=1){ 
document.forms.formfact2.fact_pagada.options[0].value='Cambiado!'; 
alert(document.forms.formfact2.fact_pagada.value);
return false;
}"
><select name="fact_pagada"><option value="Algo1">Algo 1</option><option 
value
="Algo2">Algo 2</option></select><input type="submit" value="GuardarFactura" class="b" /></form
Con tu linea
Código PHP:
document.forms.formfact2.fact_pagada.options[document.forms.formfact2.selectedIndex].value='Cambiado!'
me devuelve un error.

Pero esa linea puede ser solución para índices diferentes de 0, que es una limitante inmensa.

Si logras corregir la opción para n índices te agradecermos la publíques.

:)
  #11 (permalink)  
Antiguo 09/01/2013, 14:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Da error porque olvidé poner el nombre del select. Así debería haber sido el ejemplo:
Código Javascript:
Ver original
  1. this.fact_pagada.options[this.fact_pagada.selectedIndex].value = 'Cambiado!';
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 09/01/2013, 14:23
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Cita:
Iniciado por David Ver Mensaje
Da error porque olvidé poner el nombre del select.
David adicione la línea al FORM:
Código PHP:
<form action="" id="formfact2" 
onsubmit="if(document.forms.formfact2.fact_pagada.value!=1){ 
this.fact_pagada.options[this.fact_pagada.selectedIndex].value = 'Cambiado!';
alert(document.forms.formfact2.fact_pagada.value);
return false;
}"
><select name="fact_pagada"><option value="Algo1">Algo 1</option><option 
value
="Algo2">Algo 2</option></select><input type="submit" value="GuardarFactura" class="b" /></form
Pero cambia el VALUE para TODAS LAS OPTIONS.

Gracias
  #13 (permalink)  
Antiguo 09/01/2013, 14:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

No, solo cambia para la opción seleccionada al momento de intentar enviar el formulario. Explícame cuál es el resultado que necesitas, porque no entendí la verdad.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 09/01/2013, 14:49
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Gracias por tu tiempo David.

Requiero que si LA FACTURA NO HA SIDO PAGADA, el FORM envie la FECHA '0000-00-00'.

Aqui esta el FORM Completo:
Código PHP:
<form action="" id="formfact" onsubmit="if(document.forms.formfact.fact_pagada.value!=1){document.forms.formfact.fact_a1.options[0].value='0000';document.forms.formfact.fact_m1.options[0].value='00';document.forms.formfact.fact_d1.options[0].value='00';alert(document.forms.formfact.fact_d1.value);return false;}"><input type="hidden" name="accion" value="fact" /><input type="hidden" name="fact_user" value="4187" /><table id="factura" border="1" cellpadding="5" class="c_tm"><tr><td><select name="fact_pagada" class="fwb sel_cm" onchange="if(this.value!=1)document.getElementById('fact_fecha_pago').style.display='none';else document.getElementById('fact_fecha_pago').style.display='block';"><option value="0">Aún no pagada</option><option value="1">Fecha de pago</option></select></td><td class="tn" id="fact_fecha_pago" style="display:none;"><select name="fact_m1" class="sel_c">
    <
option value="01" selected="selected">Enero</option>
    <
option value="02">Febrero</option>
    <
option value="03">Marzo</option>
    <
option value="04">Abril</option>
    <
option value="05">Mayo</option>
    <
option value="06">Junio</option>
    <
option value="07">Julio</option>
    <
option value="08">Agosto</option>
    <
option value="09">Septiembre</option>
    <
option value="10">Octubre</option>
    <
option value="11">Noviembre</option>
    <
option value="12">Diciembre</option>
    </
select><select name="fact_d1" class="sel_c">
    <
option value="01">01</option>
    <
option value="02">02</option>
    <
option value="03">03</option>
    <
option value="04">04</option>
    <
option value="05">05</option>
    <
option value="06">06</option>
    <
option value="07">07</option>
    <
option value="08">08</option>
    <
option value="09" selected="selected">09</option>
    <
option value="10">10</option>
    <
option value="11">11</option>
    <
option value="12">12</option>
    <
option value="13">13</option>
    <
option value="14">14</option>
    <
option value="15">15</option>
    <
option value="16">16</option>
    <
option value="17">17</option>
    <
option value="18">18</option>
    <
option value="19">19</option>
    <
option value="20">20</option>
    <
option value="21">21</option>
    <
option value="22">22</option>
    <
option value="23">23</option>
    <
option value="24">24</option>
    <
option value="25">25</option>
    <
option value="26">26</option>
    <
option value="27">27</option>
    <
option value="28">28</option>
    <
option value="29">29</option>
    <
option value="30">30</option>
    <
option value="31">31</option>
    </
selectde <select name="fact_a1" class="sel_c">
    <
option value="2012">2012</option>
    <
option value="2013" selected="selected">2013</option>
    </
select></td></tr><tr><td class="tn tc" colspan="2"><input type="submit" value="Guardar Factura" class="b" /></td></tr></table></form
  #15 (permalink)  
Antiguo 09/01/2013, 14:59
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Vamos por partes, primero para hacerlo más ordenado deberías crear una función
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. function func(){
  10. alert(document.forms.formfact2.fact_pagada.value);
  11. if(document.forms.formfact2.fact_pagada.value != "Algo1"){
  12. alert('Es Algo2');
  13. return false;
  14. }else{
  15. return false;
  16. }
  17.  
  18. }
  19. //]]>
  20.  
  21. </head>
  22. <form action="#" id="formfact2" onsubmit="return func();">
  23. <select name="fact_pagada">
  24. <option value="Algo1">Algo 1</option>
  25. <option  value="Algo2">Algo 2</option>
  26. <input type="submit" value="GuardarFactura" class="b" /></form>
  27. </body>
  28. </html>

Si mirás mi función cambié la condición, porque la tuya no tiene mucha lógica, ya que siempre se va a cumplir debido a

No hay ningún value ="1" en tus options, además te aclaro que los forms siempre devuelven strings y vos hacés una comparación numérica.


Cual es exactamente el objetivo? no lo termino de entender
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #16 (permalink)  
Antiguo 09/01/2013, 15:01
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

David de nuevo: Muchas gracias

Con tu linea el FORM ahora se comporta tal como lo requiero.

:)

Ahora trabaja PERFECTO !!!

Código PHP:
<form action="" id="formfact" onsubmit="if(document.forms.formfact.fact_pagada.value!=1){
    this.fact_a1.options[this.fact_a1.selectedIndex].value='0000';
    this.fact_m1.options[this.fact_m1.selectedIndex].value='00';
    this.fact_d1.options[this.fact_d1.selectedIndex].value='00';}"
><input type="hidden" name="accion" value="fact" /><input type="hidden" name="fact_user" value="4187" /><table id="factura" border="1" cellpadding="5" class="c_tm"><tr><td><select name="fact_pagada" class="fwb sel_cm" onchange="if(this.value!=1)document.getElementById('fact_fecha_pago').style.display='none';else document.getElementById('fact_fecha_pago').style.display='block';"><option value="0">Aún no pagada</option><option value="1">Fecha de pago</option></select></td><td class="tn" id="fact_fecha_pago" style="display:none;"><select name="fact_m1" class="sel_c">
    <
option value="01" selected="selected">Enero</option>
    <
option value="02">Febrero</option>
    <
option value="03">Marzo</option>
    <
option value="04">Abril</option>
    <
option value="05">Mayo</option>
    <
option value="06">Junio</option>
    <
option value="07">Julio</option>
    <
option value="08">Agosto</option>
    <
option value="09">Septiembre</option>
    <
option value="10">Octubre</option>
    <
option value="11">Noviembre</option>
    <
option value="12">Diciembre</option>
    </
select><select name="fact_d1" class="sel_c">
    <
option value="01">01</option>
    <
option value="02">02</option>
    <
option value="03">03</option>
    <
option value="04">04</option>
    <
option value="05">05</option>
    <
option value="06">06</option>
    <
option value="07">07</option>
    <
option value="08">08</option>
    <
option value="09" selected="selected">09</option>
    <
option value="10">10</option>
    <
option value="11">11</option>
    <
option value="12">12</option>
    <
option value="13">13</option>
    <
option value="14">14</option>
    <
option value="15">15</option>
    <
option value="16">16</option>
    <
option value="17">17</option>
    <
option value="18">18</option>
    <
option value="19">19</option>
    <
option value="20">20</option>
    <
option value="21">21</option>
    <
option value="22">22</option>
    <
option value="23">23</option>
    <
option value="24">24</option>
    <
option value="25">25</option>
    <
option value="26">26</option>
    <
option value="27">27</option>
    <
option value="28">28</option>
    <
option value="29">29</option>
    <
option value="30">30</option>
    <
option value="31">31</option>
    </
selectde <select name="fact_a1" class="sel_c">
    <
option value="2012">2012</option>
    <
option value="2013" selected="selected">2013</option>
    </
select></td></tr><tr><td class="tn tc" colspan="2"><input type="submit" value="Guardar Factura" class="b" /></td></tr></table></form
Cita:
Iniciado por David Ver Mensaje
Con una opción que no existe en la lista no es posible que yo sepa...
Ahora LOS DOS sabemos que SI SE PUEDE !!!

:)

De nuevo gracias.
  #17 (permalink)  
Antiguo 09/01/2013, 16:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cómo cambiar VALUE de un campo SELECT en el evento onsubmit() ???

Me alegro que haya funcionado.
Cita:
Iniciado por Anarko Ver Mensaje
Ahora LOS DOS sabemos que SI SE PUEDE !!!
Pensé quera otra cosa la que necesitabas, por eso había dicho que no se podía.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Etiquetas: evento, funcion, input, onsubmit, campos
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 12:41.