javascript - 为什么我的 var 变为未定义但在前一个函数中设置?
问题描述
目前我正在尝试模拟登录/注册表单,我目前遇到了一个问题,我似乎无法找到解决方案来解决它说我的“用户名”未定义但onReg
首先运行该功能。
var tempusername
var temppassword
var tempconpassword
var username
var password
function onReg(tempusername, temppassword, tempconpassword, username, password){
tempusername = document.querySelectorAll("[name=username]")[0].value
temppassword = document.querySelectorAll("[name=password]")[0].value
tempconpassword = document.querySelectorAll("[name=conpassword]")[0].value
if(temppassword == tempconpassword && tempusername.length>2 && temppassword.length>2 && tempconpassword.length>2 ){
username = tempusername
password = tempconpassword
alert(username + " : " + password)
}
else if (password!=tempconpassword){
alert("Password doesnt match or is to short!")
}
}
function onLogin(username,password) {
alert("Does this work?" + username)
}
我认为可能是因为它不是全局范围?如果是这样,我怎么会用这段代码来做呢?
解决方案
username
insideonLogin
是一个正式的函数参数。调用时必须显式地向它传递一个值onLogin
。
var x = 'foo';
function checkX() {
alert(x);
}
function badCheckX(x) {
alert(x);
}
checkX(); // 'foo'
badCheckX(); // undefined
badCheckX('bar'); // 'bar'
badCheckX(x); // 'foo'
推荐阅读
- java - PDFBox 无法正确呈现 Simsun(中文)字体
- javascript - 如何向 API 发出请求,然后使用相同的快速应用程序呈现获取的数据
- sql - 如何在带有多个表的sqlplus中编写涉及的递归子查询来跟踪节点?
- java - Tomcat 服务器正在运行,但未找到其资源
- python - Python SQLite插入具有可变条目数的列表
- javascript - 错误 Android 清单:任务“:app:processDebugResources”执行失败。> Android 资源链接失败
- swift - “调用可以抛出,但没有标记‘try’,错误未处理”
- powershell - 接受可变数量的哈希集作为参数
- java - 如何在现有项目中激活 GitLab 页面?
- react-native - 反应原生博览会如何要求图像?