JQuery - No puedo pasar campo password con jquery

 
Vista:
sin imagen de perfil

No puedo pasar campo password con jquery

Publicado por Joaquín (11 intervenciones) el 14/07/2017 12:42:38
Tengo un formulario que sirve para darse de alta, tiene los campos usuario, email, password y confirmar password, y un botón submit que hace dos cosas, dar de alta al cliente en la base de datos con estos datos y por otra envía con jquery las variables de estos campos a un php para enviar a la vez un email con sus datos de alta: usuario, email, password. El botón tiene un: onclick="return regformhash(this.form, this.form.username, this.form.email, this.form.password, this.form.confirmpwd);"
El formulario un: action="<?php echo esc_url($_SERVER['PHP_SELF']); ?>
Y un jquery:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$(document).ready(function(){
 $("#registration_form").submit(function(e) {
	//$("#boton").click(function(){ 
 	var url = "registermail.php";
	var email =$("#email").val();
	var password =$("#username").val();
.
$.ajax({
           type: "POST",
           url: url,
		   data: {email:email,password:password},
           //data: $("#registration_form").serialize(),
		   dataType: "html",
.
Funciona perfectamente tanto dando de alta al cliente en la base de datos como enviando el correo, menos en una cosa que por muchas vueltas que le he dado no he conseguido entender: var password =$("# password ").val(); no la pasa o la pasa vacía. No aparece en el correo recibido, mientras que las otras sí. Igualmente ocurre si lo hago pasando el valor del campo de confirmación del password: var password =$("# confirmpwd ").val();
Si alguien sabe porqué le agradecería mucho que me orientara.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 141
Plata
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

No puedo pasar campo password con jquery

Publicado por kip (38 intervenciones) el 19/07/2017 00:16:36
Hola, coloca tu estructura HTML.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

No puedo pasar campo password con jquery

Publicado por Joaquín (11 intervenciones) el 19/07/2017 09:43:45
Hola, gracias por responder, ya lo he solucionado, te cuento. El html es un form con esta estructura básicamente:
1
2
3
4
5
6
7
8
9
10
11
<form class="group2" method="post" name="registration_form" id="registration_form" action="<?php echo esc_url($_SERVER['PHP_SELF']); ?>">
<label for="username" >Nombre de usuario:</label>
<input type='text' name='username' id='username'/>
<label for="email" >Email:</label>
 <input type=" email " name="email" id="email" />
<label for="password">Password:</label>
 <input type="password" name="password" id="password"/>
<label for="confirmpwd" >Confirmar password:</label>
 <input type="password" name="confirmpwd" id="confirmpwd"/>
 <input id="boton" type="button" value="Registrar" onclick="emailpassw(this.form.confirmpwd);return regformhash(this.form, this.form.username, this.form.email, this.form.password, this.form.confirmpwd);" />
 </form>
Como comentaba en la entrada anterior lo que quería es con este formulario era dar de alta a una persona en la base de datos para utilizar unos servicios y a la vez enviarle un mail con sus datos de entrada, para lo cual este formulario tenía que hacer lo siguiente:
1º Validarlo y encriptar el password, lo que hago con un script que importo: form.js y que corresponde a onclick="emailpassw(this.form.confirmpwd);return regformhash(this.form, this.form.username, this.form.email, this.form.password, this.form.confirmpwd);"
2º Enviar los datos a una base de datos con su nombre de usuario, email, password y salt. Lo que hago con dos php que tengo en este archivo con dos include_once.
Esto lo hace perfectamente.
3º Enviar el correo, que lo hago con jquery:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(document).ready(function(){
	$("#boton").click(function(){
 	var url = "registermail.php";
	var email =$("#email").val();
	var password =$("#confirmar").val();
 
    $.ajax({
           type: "POST",
           url: url,
		   data: {email:email,password:password},
		   dataType: "html",
           success: function(result)
           {
           }
         });
	return false;
 });
});
El problema lo tenía en que al validar el formulario con el onclick los campos usuario y email los podía obtener desde el jquery y los de password y confirmar password no. Nunca he sabido porqué y he desistido de saberlo después de darle muchas vueltas, lo que he hecho es crear un script que se ejecute en el onclick antes que el form.js, que lo que hace es colocar en un campo hidden el valor de confirmar password:
1
2
3
4
5
6
7
8
9
10
<script>
function emailpassw(elemento){
	var valorconfpassw=elemento.value;
	var pw = document.createElement("input");
	document.getElementById("registration_form").appendChild(pw);
	pw.type = 'hidden';
	pw.id = "confirmar";
	pw.value=valorconfpassw;
}
</script>
Y desde el jquery correspondiente al email recuperarlo y enviarlo. Funciona perfectamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar