Tengo hecho un formulario, de una encuesta, y segun como lo programe debe saltar si un campo no esta lleno, pero no lo hace, les dejo el codigo completo porque tengo un script que deshabilita el boton de enviar al presionar para evitar spam..
Este es el que deshabilita el boton.
Código:
</style>
<script language="javascript" type="text/javascript">
autoDetect = true;
timeOutSecs = 5; // luego de 5 segundos, el botón se habilitará de nuevo,
// para el caso de que el servidor deje de responder y el usuario
// necesite volver a submitir.
window.onload = init; // esta linea puede borrarse si autoDetect=false
function init(e){
if (autoDetect){
for (var a=0;a<document.forms.length;a++){
document.forms[a].onsubmit = disable; // adjunta la función disable a todos los forms
}
}
}
function disable(e){ // asigna función al submit y pasa el evento como argumento
if (document.getElementById) { // chekea que el navegador soporte. Sino lo hace, se ignora el efecto.
if (autoDetect){ // toma el objeto FORM desde el evento
if (!e) {e = document.parentWindow.event;} // mozilla pasa (e) pero IE no, así que también usamos su forma de obtener el evento
var el = e.target || e.srcElement; // obtener el elemento de donde salió el evento, para mozilla o explorer
} else { // toma el objeto FORM si se pasa manualmente
el = e;
}
while (el.tagName != "FORM"){ el = el.parentNode;} // mozilla pasa el input como source del submit. busco entonces el form de ese input.
for (var b=0;b<el.elements.length;b++){ // por cada elemento del form
var formEl = el.elements[b];
// si el elemento es un botón de submit
if ((formEl.tagName == "INPUT") && (formEl.getAttribute("type") != null) && ((formEl.getAttribute("type").toLowerCase() == "submit") )) {
formEl.disabled = true; // desactivar botón
document.getElementsByTagName("body")[0].style.cursor = 'wait'; // relojito
setTimeout(function(){formEl.disabled = false;document.body.style.cursor = 'default';},timeOutSecs*1000)
}
}
}
return true;
}
//-->
</script>
Este es el code del form:
Código:
<form id="form1" name="form1" method="post" action="send_form.php">
<p align="left">¿Qué piensas al leer enconstruccion.com?<br />
<span id="sprytextfield1">
<label>
<textarea name="first" cols="40" id="first"></textarea>
<br />
</label>
<span class="textfieldRequiredMsg">Se necesita un valor.</span></span> <br />
Te gusta el nombre enconstruccion.com para un sito web?<br />
<span id="spryradio1">
<label>
<input type="radio" name="second" value="Si" id="second_0" />
Si, si me gusta.</label>
<br />
<label>
<input type="radio" name="second" value="No" id="second_1" />
No, no me gusta.</label>
<br />
<span class="radioRequiredMsg">Realice una selección.</span></span> </p>
<p align="left">¿De que crees que tratara este sitio?<br />
<span id="sprytextfield2">
<label>
<textarea name="third" cols="40" id="third"></textarea>
</label>
<span class="textfieldRequiredMsg">Se necesita un valor.</span></span> </p>
<p align="left">¿Qué te gustaria encontrar en este sitio?<br />
<span id="sprytextfield3">
<label>
<textarea name="forth" cols="40" id="forth"></textarea>
</label>
<span class="textfieldRequiredMsg">Se necesita un valor.</span></span><br />
</p>
<p align="left"><span id="sprytextfield4">
<label>
<input name="fifth" type="text" class="IpTxt" id="fifth" value='<? $ip=$_SERVER['REMOTE_ADDR']; echo "$ip"; ?>' readonly="readonly" hidden="" />
</label>
<span class="textfieldRequiredMsg">Se necesita un valor.</span></span> <br />
[<span class="txtt">Tu IP es enviada solo como medida de seguridad.</span>] <br />
</p>
<p align="left">
<?
$strCodigo="";
for($iCont=1;$iCont<=5;$iCont++){
$strCodigo=$strCodigo.rand(1,9);
}
echo "Introduce el siguiente Código: ";
echo $strCodigo;
echo " <br> \n";
?>
<input type="text" name="escrito" width=50 size=5 ">
<INPUT TYPE="hidden" NAME="puesto" VALUE="<? echo $strCodigo ?>" width=100 size=20 "><BR>
</p>
<p align="left">
<label>
<input type="submit" onkeypress="disabled" name="sEND" id="sEND" value="Enviar" />
</label>
<label>
<input type="reset" name="rESTA" id="rESTA" value="Restablecer" />
</label>
</p>
</form>
Y este es el ultimo script antes de </body>:
Código:
<script type="text/javascript">
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1");
var spryradio1 = new Spry.Widget.ValidationRadio("spryradio1");
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2");
var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3");
var sprytextfield4 = new Spry.Widget.ValidationTextField("sprytextfield4");
//-->
</script>
Igual he puesto datos demas, pero se que hay veces que una pequeña coma aveces puede significar la diferencia.
Muchas Gracias de antemano para el que me pueda ayudar...
Tambien si ven algo mas que esta mal, ayudenme porfavor.
Cuidence
xD