Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/09/2011, 08:06
agcforos
 
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. }