所以我试图用 javascript 生成一个注册框,我一直设法这样做,直到我偶然发现了一个奇怪的错误。该脚本在 HTML 中输出:
<input type="f" name="i" alt="r" placeholder="s">
代替:
<input type="email" name="regemail" alt="email" placeholder="What's your email?">
其他 2 个输入也是如此。为什么会这样?我试图寻找任何错误,但控制台没有给我任何错误,我也找不到我编写的代码有任何问题。感谢您的帮助。
var firstInput = ["email", "regemail", "email", "What's your email?"];
var secondInput = ["password", "regpassword", "password", "Choose a password"];
var thirdInput = ["password", "confirmpassword", "confirmpassword", "Confirm password"];
var types = ["type", "name", "alt", "placeholder"];
var inputNumber = ["firstInput", "secondInput", "thirdInput"];
var container = document.getElementById('usp-container');
function register() {
var div = document.createElement('div');
div.setAttribute('id', "register-popup");
container.appendChild(div);
var form = document.createElement('form');
form.setAttribute('method', "post");
form.setAttribute('action', "processregistration.php");
div.appendChild(form);
for (i = 0; i < 3; i++) {
function makeInputs(inputs) {
var tableRow = document.createElement('tr');
form.appendChild(tableRow);
var tableData = document.createElement('td');
tableRow.appendChild(tableData);
var input = document.createElement('input');
for (j = 0; j < 4; j++) {
input.setAttribute(types[j], inputs[j]);
}
tableData.appendChild(input);
}
makeInputs(inputNumber[i]);
}
}
register();
最佳答案
变量名在一个数组中
var firstInput = ["email", "regemail", "email", "What's your email?"];
var inputNumber = ["firstInput", "secondInput", "thirdInput"];
然后您将遍历这些变量名,并尝试使用
获取该变量的值inputNumber[0]
这会得到字符串"firstInput"
,不是一个数组,所以当你这样做的时候
inputNumber[0][0]
您得到字符 "f"
,不是数组中的值 "email"
。
要使用字符串来引用变量,您必须使用括号表示法,并且在全局范围内看起来像
window[inputNumber[0]][0];
这确实不是一个很好的获取变量的方法
你最好有一个对象
var values = {
firstInput : ["email", "regemail", "email", "What's your email?"],
secondInput : ["password", "regpassword", "password", "Choose a password"],
thirdInput : ["password", "confirmpassword", "confirmpassword", "Confirm password"]
}
然后用键名引用数组
values[inputNumber[0]][0]
关于javascript - 将随机字母显示为属性值而不是数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26025110/