gpt4 book ai didi

javascript - 未定义简单函数。没有看到任何语法错误

转载 作者:行者123 更新时间:2023-11-28 08:27:35 25 4
gpt4 key购买 nike

我已经通过 JS lint 运行了这个脚本...当我尝试执行 sendLogin() 时,控制台返回它尚未定义。为什么?

<script>
$(document).ready(function(){
$('#register-fields').hide();

function reCenter(){
$('.login-window').center($('.wrapper'));
}

$('.login-window').center($('.wrapper'));

$(window).resize(reCenter);

var creds = new Object();

function popLogCreds(creds){
creds.username = $("#username-field").val();
creds.password = $("#password-field").val();
}

function sendLogin(){

popLogCreds();

var loginCredentials= {
"username":creds.username,
"password":creds.password };

request = $.ajax({
url: "http://127.0.0.1:8080/login",
type: "POST",
crossDomain: true,
data: loginCredentials,
dataType: "json"
});

request.always(function(data) {

console.log(data);

var ParsedData = jQuery.parseJSON(data);

sessionStorage.username=ParsedData.username;
sessionStorage.password=ParsedData.password;
sessionStorage.fname=ParsedData.fname;
sessionStorage.lname=ParsedData.lname;
sessionStorage.rank=ParsedData.rank;

});

}


});
</script>

最佳答案

您已使用另一个函数(作为参数传递给 ready() 的匿名函数)内的函数声明来定义它。函数声明是局部作用域的,因此它不是全局的。

只有当它是全局的时,从控制台调用它才有效。

您可以使用以下方法将其复制到全局范围:

window.sendLogin = sendLogin;

或者,将其(以及它调用的也属于本地作用域的任何函数,依此类推)移动到全局作用域(即所有其他函数之外)。

关于javascript - 未定义简单函数。没有看到任何语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22234494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com