Foros del Web » Programando para Internet » Javascript »

Form con dos botones y validación de campos.

Estas en el tema de Form con dos botones y validación de campos. en el foro de Javascript en Foros del Web. Hola. Tengo un formulario con dos botones y dependiendo de cual se pulse debe de validar los campos de este formulario. Lo tengo hecho y ...
  #1 (permalink)  
Antiguo 11/09/2011, 09:04
 
Fecha de Ingreso: julio-2011
Mensajes: 91
Antigüedad: 13 años, 5 meses
Puntos: 2
Form con dos botones y validación de campos.

Hola.
Tengo un formulario con dos botones y dependiendo de cual se pulse debe de validar los campos de este formulario. Lo tengo hecho y me funciona, pero entiendo que no es nada académica la solución dada, principalmente porque estoy detectando el botón pulsado por medio de una búsqueda de una cadena en la cadena donde va todo el path de llamada al nuevo html.
Adjunto el código y si alguien me puede comentar alguna otra posibilidad pues mejor que mejor. En cualquier caso gracias.


Formulario:
Cita:
<table border=3 width=100%>
<form id="env" name="envio" onsubmit="return validar();" action='' method='POST'>
<tr>
<td></td><td><input id='pregunta' type='text' size='173' name='descpregunta' onblur="revisarObligatorio(this)"/></td>
</tr>
<tr>
<td>Respuesta_1:</td><td><input id='respuesta1' type='text' size='173' name='r1' onblur="revisarObligatorio(this)"/></td>
<td><select id='vf1' name='verfal1'>
<option value='Falso'>Falso</option>
<option value='Verdadero'>Verdadero</option>
</td>
</tr>
<tr>
<td>Respuesta_2:</td><td><input id='respuesta2' type='text' size='173' name='r2' onblur="revisarObligatorio(this)"/></td>
<td><select id='vf2' name='verfal2'>
<option value='Falso'>Falso</option>
<option value='Verdadero'>Verdadero</option>
</td>
</tr>
<tr>
<td>Respuesta_3:</td><td><input id='respuesta3' type='text' size='173' name='r3' onblur="revisarObligatorio(this)"/></td>
<td><select id='vf3' name='verfal3'>
<option value='Falso'>Falso</option>
<option value='Verdadero'>Verdadero</option>
</td>
</tr>
<tr>
<td>Respuesta_4:</td><td><input id='respuesta4' type='text' size='173' name='r4' onblur="revisarObligatorio(this)"/></td>
<td><select id='vf4' name='verfal4'>
<option value='Falso'>Falso</option>
<option value='Verdadero'>Verdadero</option>
</td>
</tr>
<input id="curso" type='hidden' name='idcurso' value='idcurso' />
<input id="asignatura" type='hidden' name='idasignatura' value='idasignatura' />
<input id="tema" type='hidden' name='idtema' value='idtema' />
<tr height=60px>
<td></td><td id="boton" align=center><input id="enviar" type='image' src='imagenes/aceptar.png' height = 48px name='enviar' value='Enviar' onclick="this.form.action='anadenuevapregunta.php' "/>
<input id="volver" type='image' src='imagenes/volver.png' name='volver' value='Volver' onclick="this.form.action='do_temas.php'"/>
</td><td></td>
</tr>
</form>
</table>
función de validación:
Cita:
function validar(){
var estaTodoOk=true;
var cadena = document.getElementById('env').action;

if (cadena.indexOf('anadenuevapregunta')!=-1) {
if (document.getElementById('pregunta').value.length < 20){
estaTodoOk=false;
}

if (document.getElementById('respuesta1').value.lengt h < 2){
estaTodoOk=false;
}

if (document.getElementById('respuesta2').value.lengt h < 2){
estaTodoOk=false;
}

if (document.getElementById('respuesta3').value.lengt h < 2){
estaTodoOk=false;
}

if (document.getElementById('respuesta4').value.lengt h < 2){
estaTodoOk=false;
}

if ((document.getElementById('vf1').value=='Falso') && (document.getElementById('vf2').value=='Falso') &&
(document.getElementById('vf3').value=='Falso') && (document.getElementById('vf4').value=='Falso')){
estaTodoOk=false;
}

if(!estaTodoOk){
alert('Algunos campos no los has informado o no has seleccionado ninguna respuesta como "Verdadero", por favor corrígelos para poder tramitar tu pregunta');
}
}
return estaTodoOk;
}
  #2 (permalink)  
Antiguo 12/09/2011, 08:06
 
Fecha de Ingreso: julio-2011
Mensajes: 91
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: Form con dos botones y validación de campos.

... a lo mejor con colorines....


Hola.
Tengo un formulario con dos botones y dependiendo de cual se pulse debe de validar los campos de este formulario. Lo tengo hecho y me funciona, pero entiendo que no es nada académica la solución dada, principalmente porque estoy detectando el botón pulsado por medio de una búsqueda de una cadena en la cadena donde va todo el path de llamada al nuevo html.
Adjunto el código y si alguien me puede comentar alguna otra posibilidad pues mejor que mejor. En cualquier caso gracias.


Formulario:
Código javascript:
Ver original
  1. <table border=3 width=100%>
  2. <form id="env" name="envio" onsubmit="return validar();" action='' method='POST'>
  3. <tr>
  4. <td></td><td><input id='pregunta' type='text' size='173' name='descpregunta' onblur="revisarObligatorio(this)"/></td>
  5. </tr>
  6. <tr>
  7. <td>Respuesta_1:</td><td><input id='respuesta1' type='text' size='173' name='r1' onblur="revisarObligatorio(this)"/></td>
  8. <td><select id='vf1' name='verfal1'>
  9. <option value='Falso'>Falso</option>
  10. <option value='Verdadero'>Verdadero</option>
  11. </td>
  12. </tr>
  13. <tr>
  14. <td>Respuesta_2:</td><td><input id='respuesta2' type='text' size='173' name='r2' onblur="revisarObligatorio(this)"/></td>
  15. <td><select id='vf2' name='verfal2'>
  16. <option value='Falso'>Falso</option>
  17. <option value='Verdadero'>Verdadero</option>
  18. </td>
  19. </tr>
  20. <tr>
  21. <td>Respuesta_3:</td><td><input id='respuesta3' type='text' size='173' name='r3' onblur="revisarObligatorio(this)"/></td>
  22. <td><select id='vf3' name='verfal3'>
  23. <option value='Falso'>Falso</option>
  24. <option value='Verdadero'>Verdadero</option>
  25. </td>
  26. </tr>
  27. <tr>
  28. <td>Respuesta_4:</td><td><input id='respuesta4' type='text' size='173' name='r4' onblur="revisarObligatorio(this)"/></td>
  29. <td><select id='vf4' name='verfal4'>
  30. <option value='Falso'>Falso</option>
  31. <option value='Verdadero'>Verdadero</option>
  32. </td>
  33. </tr>
  34. <input id="curso" type='hidden' name='idcurso' value='idcurso' />
  35. <input id="asignatura" type='hidden' name='idasignatura' value='idasignatura' />
  36. <input id="tema" type='hidden' name='idtema' value='idtema' />
  37. <tr height=60px>
  38. <td></td><td id="boton" align=center><input id="enviar" type='image' src='imagenes/aceptar.png' height = 48px name='enviar' value='Enviar' onclick="this.form.action='anadenuevapregunta.php' "/>
  39. <input id="volver" type='image' src='imagenes/volver.png' name='volver' value='Volver' onclick="this.form.action='do_temas.php'"/>
  40. </td><td></td>
  41. </tr>
  42. </form>
  43. </table>


función de validación:
Código javascript:
Ver original
  1. function validar(){
  2. var estaTodoOk=true;
  3. var cadena = document.getElementById('env').action;
  4.  
  5. if (cadena.indexOf('anadenuevapregunta')!=-1) {
  6. if (document.getElementById('pregunta').value.length < 20){
  7. estaTodoOk=false;
  8. }
  9.  
  10. if (document.getElementById('respuesta1').value.lengt h < 2){
  11. estaTodoOk=false;
  12. }
  13.  
  14. if (document.getElementById('respuesta2').value.lengt h < 2){
  15. estaTodoOk=false;
  16. }
  17.  
  18. if (document.getElementById('respuesta3').value.lengt h < 2){
  19. estaTodoOk=false;
  20. }
  21.  
  22. if (document.getElementById('respuesta4').value.lengt h < 2){
  23. estaTodoOk=false;
  24. }
  25.  
  26. if ((document.getElementById('vf1').value=='Falso') && (document.getElementById('vf2').value=='Falso') &&
  27. (document.getElementById('vf3').value=='Falso') && (document.getElementById('vf4').value=='Falso')){
  28. estaTodoOk=false;
  29. }
  30.  
  31. if(!estaTodoOk){
  32. alert('Algunos campos no los has informado o no has seleccionado ninguna respuesta como "Verdadero", por favor corrígelos para poder tramitar tu pregunta');
  33. }
  34. }
  35. return estaTodoOk;
  36. }

Etiquetas: botones, html, php, formulario, validar
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 19:41.