Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/07/2015, 04:29
Avatar de angel_dope
angel_dope
 
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 4 meses
Puntos: 8
Control de formulario no se ejecuta

Hola una vez más!! Tengo un formulario con dos controles y ninguno parece funcionar. Por una parte, en varios campos, se comprueba que al pulsar una tecla es un número. Si es un número, lo escribe, si no lo es, no hace nada. Por otra parte, al enviar el formulario, se comprueba que los campos obligatorios tienen valor, que cierto campo no pasa de 100 y que la suma de otros cuatro campos suma 100 exactos (en otros formularios solo se comprueba una de estas condiciones, pero el falla también)
El caso es que no hace caso de nada, en los campos deja escribir cualquier cosa y si le doy al botón de enviar, se envía sin comprobar nada. Alguien tiene idea de porque está pasando esto? He probado en Chrome y en Explorer 11 y en ambos el comportamiento es el mismo.
Os dejo el código por si se me ha pasado algo:

Las dos funciones
Código Javascript:
Ver original
  1. <head>
  2. <script language="javascript">
  3. <!--
  4. function LP_data(){
  5. var key=window.event.keyCode;//codigo de tecla.
  6. if (key < 48 || key > 57){//si no es numero  
  7. window.event.keyCode=0;//anula la entrada de texto.
  8. }}
  9. -->
  10. </script>
  11. <script language="javascript">
  12. function validar(frm) {
  13.  var ret;
  14.  if (frm.f1.value == "" ) || (frm.f2.value == "" ) || (frm.f3.value == "" )  {
  15.   alert('Por favor, rellene todos los campos obligatorios marcados con **');
  16.   ret = false;
  17.  }
  18.   if ( frm.f4.value > 100) {
  19.   alert('El valor de la pregunta P4 debe ser menor o igual que 100');
  20.   ret = false;
  21.  }
  22.   if ( frm.f6_nacional_hogar.value+frm.f6_inter_hogar.value+frm.f6_nacional_contract.value+frm.f6_inter_contract.value != 100) {
  23.   alert('La suma de los cuatro campos de la pregunta P6 debe ser igual a 100');
  24.   ret = false;
  25.  }
  26.  
  27. return ret;
  28. }
  29. </script>

El formulario
Código HTML:
Ver original
  1. <form id="frm" name="frm" method="post" action="f_s1_2.asp"  onsubmit="return validar(this)">

Uno de los inputs
Código HTML:
Ver original
  1. <input name="f1_2" type="text" class="campos_de_texto" id="f1_2"  size="3" maxlength="3" onkeypress="LP_data()"/>
__________________
Vayamos por Partes :: Jack el Destripador