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:
función de validación:<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>
<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>
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;
}
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;
}