Foros del Web » Programando para Internet » Javascript »

Problemas al llamar al .js para validar datos en un formulario que utiliza php

Estas en el tema de Problemas al llamar al .js para validar datos en un formulario que utiliza php en el foro de Javascript en Foros del Web. Tengo un formulario que al presionar el botón de manda a un archivo php. Código HTML: <input type= "button" value= "RECIBIR PEDIDO POR MENSAJERIA" onclick= ...
  #1 (permalink)  
Antiguo 27/10/2012, 03:52
 
Fecha de Ingreso: junio-2012
Mensajes: 22
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Problemas al llamar al .js para validar datos en un formulario que utiliza php

Tengo un formulario que al presionar el botón de manda a un archivo php.

Código HTML:
 <input type="button" value="RECIBIR PEDIDO POR MENSAJERIA" onclick="redondear(input_total_iva); 
confirmarFechas();document.getElementById('form1').action='prepago.php'; Validar2(form1);" /> 
En este archivo php se recogen los datos anteriores en oculto, y te pide nuevos datos a rellenar. Al final tiene un botón de continuar que manda a otro archivo php que tiene una parte de recordar todos los datos, mandar al TPV, mandar email al cliente... Mi problema es al enlazar el botón de continuar con un archivo .js para validar que se hayan rellenado los campos obligatorios. Aparece el cuadro de por favor rellene el nombre (por ejemplo) pero cuando le das a aceptar para ir a rellenarlo se carga la siguiente página...

Este es el código que tengo (lo pongo dentro de html para que salgan bien las partes del form, pero esta dentro de un php)


Código HTML:
<script src="validar-prueba.js" type="text/javascript">//</script>
<?php

$content='

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
<link href="diseno.css" rel="stylesheet" type="text/css" />

</head>

// QUITO PARTE DE LA PÁGINA QUE NO ES NECESARIA PARA ESTE CASO

    <div id="contenido">

<form id="form1" name="form1" method="post" action="pago.php ">

 
 <table>
   <tr>
     <td bgcolor="#E9C2CD"><strong>Nombre y Apellidos*</strong></td>
     <td><span class="Estilo3">
       <input name="nombre" type="text" id="nombre" size="32" />
     </span></td>
     <td bgcolor="#E9C2CD"><strong>Empresa</strong></td>
     <td><input name="empresa" type="text" id="empresa" size="32" /></td>
   </tr>

   //QUITO ALGUNOS CAMPOS PARA NO ALARGAR CÓDIGO
		 
<input type="submit" name="enviar" id="enviar" value="Confirmar Pedido" onclick=" Validardatosmensajeria(form1);" />
	
    </table>
    

</form> 
</body>
</html>
';

echo $content;

¿Alguien podría decirme cómo conseguir que funcione bien el .js y no se cargue la siguiente página hasta que no se hayan rellenado los datos bien?

MUCHAS GRACIAS

Pongo también el codigo del java scrip:


Código:
 function Validardatosmensajeria(form)

{
if (form.nombre.value == "") 

{ alert("Por favor ingrese su nombre."); form.nombre.focus(); return; }


if (form.telefono.value == "")

{ alert("Por favor ingrese su número de teléfono."); form.telefono.focus(); return; }

valor = document.getElementById("telefono").value;
if( !(/^\d{9}$/.test(valor)) ) {
   alert("Por favor ingrese un número de teléfono válido, 9 dígitos sin espacios"); form.telefono.focus(); return; }

if (form.email.value == "")

{ alert("Por favor ingrese su dirección de E-mail."); form.email.focus(); return; }


if (form.email.value.indexOf('@', 0) == -1 ||

form.email.value.indexOf('.', 0) == -1)

{ alert("Dirección de e-mail inválida, por favor, ingresa una correcta."); form.email.focus(); return; }

if (form.verif.checked==false)

{ alert("Tienes que aceptar las condiciones generales de contratación."); form.verif.focus(); return; }
}

Etiquetas: formulario, html, js, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:28.