Foros del Web » Programando para Internet » Javascript »

no me funciona bien un archivo js dentro de un formulario en php

Estas en el tema de no me funciona bien un archivo js dentro de un formulario en 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 24/10/2012, 09:45
 
Fecha de Ingreso: junio-2012
Mensajes: 22
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta no me funciona bien un archivo js dentro de un formulario en 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 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; }
}

Última edición por paty221; 24/10/2012 a las 09:50

Etiquetas: formulario, 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 01:41.