Ver Mensaje Individual
  #11 (permalink)  
Antiguo 09/03/2014, 12:31
helenp
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: Opinion validación javascript

Cita:
Iniciado por Pantaláimon Ver Mensaje
Cierto, los innerHTML cambian (que por cierto, si sólo quieres añadir texto usa mejor textContent ). Pero vaya, la idea es la misma, poner la información que cambia en un objeto o array y recorrer la estructura que se repite mediante un bucle:

Gracias, habia una pequeña errata y añadiendo otra validacion en este orden funciona:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     function OnSubmitBooking()
  3. {
  4.     if(document.Booking.emailtrue.value != document.Booking.repeat_email.value)
  5.  {
  6. divresult = document.getElementById('repeat_emailbox');
  7. divresult.className = 'validation'
  8. divresult.innerHTML = 'Email and repeat email are not equal';
  9.  document.Booking.repeat_email.focus();
  10.         return false;
  11.  }
  12.         var info = {
  13.             name        : ['namebox'        , 'Please fill in name' ],
  14.             passport    : ['passportbox'    , 'Please fill in your identification' ],
  15.             emailtrue   : ['emailtruebox'   , 'Please fill in email' ],
  16.             repeat_email: ['repeat_emailbox', 'Please repeat email' ],
  17.             telmobile   : ['telmobilebox'   , 'Please fill in mobile to bring on holiday' ],
  18.             test        : ['resultbooking'  , 'Please answer the security question' ]
  19.         }
  20.         for( key in info ) {
  21.             if(document.Booking[key].value == '')
  22.             {
  23.                 divresult = document.getElementById(info[key][0])
  24.                 divresult.className = 'validation'
  25.                 divresult.textContent = info[key][1];
  26.                 document.Booking[key].focus();
  27.                 return false;
  28.             }
  29.         }
  30. }
  31.         </script>
La validación de la pregunta de seguridad, creo que le meteré Ajax ya que estoy y queda mejor.
Lo de Preventdeafult lo dejo un rato ya que veo que se ha abierto un debate paralelo.
Antes de este nuevo codigo usaba innerhtml y estaba intentando poner que cuando escribe en el input que esta en focus que se elimine el texto de validación, no es necesario pero queda bien, intentaba meter otra funcion dentro de la funcion usando onchange y poner innerhtml como display none:
document.getElementById("resultado").style.display = "none";
me imagino en este caso sería textContent.display = "none";

Este es el html relevante:
Código HTML:
Ver original
  1. <form class="instant" name="Booking" id="solicitud"
  2. action="<?php echo $_SERVER['SCRIPT_NAME'];?>" method="post" onSubmit="return OnSubmitBooking();">
  3. <label for="name">Name:</label><input id="name" name="name" title="Please enter your name" onchange="quitarfocus()" type="text" size="50">
  4. <div id="namebox"></div>

Edited, I changed textcontent to innerhtml as innerhtml is supported by all browswers and works, does not have any html:
divresult.innerHTML = info[key][1];
http://www.davidtong.me/innerhtml-in...html-and-text/

Última edición por helenp; 09/03/2014 a las 12:58