AJAX - Uncaught ReferenceError: EnviarForm_usr is not defined at HTMLButtonElement.onclick

   
Vista:
Imágen de perfil de Daniel

Uncaught ReferenceError: EnviarForm_usr is not defined at HTMLButtonElement.onclick

Publicado por Daniel (1 intervención) el 22/03/2017 20:59:09
Buenas chicos he creado mi codigo pero me sale esté problema: Uncaught ReferenceError: EnviarForm_usr is not defined at HTMLButtonElement.onclick
Esté es mi código:
En html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<div class="contenedor-formulario">
<h2 class="is">Iniciar sesion</h2>
 
<form class="formulario" action="procesos/procesa_login" id="form_lg" method="POST" name="formulario" autocomplete="off">
<div>
<div class="input-group">
<input type="text" name="login" id="nombre">
<label for="nombre" class="label">Nombre</label>
</div>
<div class="input-group">
<input type="password" name="pass" id="contraseña">
<label for="contraseña" class="label">Contrase&ntilde;a</label>
</div>
<button id="btn-submit" type="button" name="button" onclick="EnviarForm_usr();"><i class="fa fa-sign-in" aria-hidden="true"></i> Entrar</button>
</div>
</form>
 
<br>
<a href="<?php echo $ht ?>" class="inicio"><i class="fa fa-home" aria-hidden="true"></i> Inicio</a>
 
</div>

En javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(document).ready(function() {
function EnviarForm_usr(){
var usuario = document.getElementById('nombre').val();
var contraseña = document.getElementById('contraseña').val();
$.ajax({
type:'POST',
url:'http://localhost/DragoSTD/Users/procesos/procesa_login.php',
data:('login='+usuario+'&pass='+contraseña),
success:function(respuesta) {
if (respuesta == 1) {
ins_correct();
}
}
});
}
});

Tengo enlazado los dos archivos js así
1
2
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="<?php echo $ht ?>/js/formularios.js"></script>
La variable $ht es la url de mi host
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 Alejandro

Uncaught ReferenceError: EnviarForm_usr is not defined at HTMLButtonElement.onclick

Publicado por Alejandro (16 intervenciones) el 23/03/2017 01:10:12
Hola Daniel, el problema es que la funcion EnviarForm_usr esta dentro del scope del callback del metodo ready.

Hay dos soluciones:

1) Dejas la funcion solo FUERA del .ready();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function EnviarForm_usr(){
    var usuario = document.getElementById('nombre').val();
    var contraseña = document.getElementById('contraseña').val();
    $.ajax({
    type:'POST',
    url:'http://localhost/DragoSTD/Users/procesos/procesa_login.php',
    data:('login='+usuario+'&pass='+contraseña),
    success:function(respuesta) {
    if (respuesta == 1) {
    ins_correct();
    }
    }
    }
}


2) Agregas un manejador de eventos después de la función, y quitas el atributo onclick de button

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// HTML 
<button id="btn-submit" type="button" name="button">
    <i class="fa fa-sign-in" aria-hidden="true"></i> Entrar
</button>
 
//JS
 
$(document).ready(function() {
function EnviarForm_usr(){
    alert('Hola');
var usuario = document.getElementById('nombre').val();
var contraseña = document.getElementById('contraseña').val();
$.ajax({
type:'POST',
url:'http://localhost/DragoSTD/Users/procesos/procesa_login.php',
data:('login='+usuario+'&pass='+contraseña),
success:function(respuesta) {
if (respuesta == 1) {
ins_correct();
}
}
});
}
 
$('#btn-submit').('click', EnviarForm_usr);
});

Nos Comentas.
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
Revisar política de publicidad