Javascript 对象属性未定义,但它存在
我刚刚看到一个有史以来最奇怪的错误 因此,我: HTMLJavascript 对象属性未定义,但它存在,javascript,Javascript,我刚刚看到一个有史以来最奇怪的错误 因此,我: HTML <div class="mui-textfield mui-textfield--float-label"> <input id="registration-firstname" type="text" required> <label>First name</label> </div> <div class="mui-textfield mui-textf
<div class="mui-textfield mui-textfield--float-label">
<input id="registration-firstname" type="text" required>
<label>First name</label>
</div>
<div class="mui-textfield mui-textfield--float-label">
<input id="registration-last-name" type="text" required>
<label>Last name</label>
</div>
<div class="mui-textfield mui-textfield--float-label">
<input id="registration-email" type="email" required>
<label>Email address</label>
</div>
<div class="mui-select">
<select id="registration-role">
<option>user</option>
<option>courier</option>
</select>
<label>Role</label>
</div>
问题
如果我这样做:
console.log(elements.form.registration)
它将打印:
Object { firstname: <input#registration-firstname>, lastname : <input#registration-last-name>, email: <input#registration-email>, role: <select#registration-role>, password: <input#registration-password> }
它将打印:
undefined
我已经三次检查了lastname属性是否存在,我甚至尝试过这样做
console.log(Object.keys(elements.forms.registration))
那是印刷的吗
Array [ "firstname", "lastname ", "email", "role", "password" ]
是什么让事情变得更奇怪?给定对象中的任何其他属性都不会出现这个问题 尽管使用
“
引号定义对象与不使用引号定义对象没有区别,但请更改此选项
registration : {
"firstname" : document.getElementById('registration-firstname'),
"lastname " : document.getElementById('registration-last-name'),
"email" : document.getElementById('registration-email'),
"role" : document.getElementById('registration-role')
}
到
找到了。在中有额外的尾随空格
// ↓
"lastname "
我发现了一个错误-我有一个血淋淋的空格:(你在“lastname”后面有一个空格。把它改成“lastname”。这个问题应该以“typo”结束.相反,在我和OP的评论后2分钟发布的一个答案,清楚地表明这是一个简单的打字错误,有4张赞成票…让我们今天打个电话吧。更糟糕的是,另一个答案,它可能会让未来的读者认为在JS中,写对象的属性名时有或没有引号是有区别的-在没有区别的情况下e-也有4张选票。很明显,民主自2016年以来就被打破了。@Rouz我不是苛刻的,我现在很酷。问题是:S.O.是一个知识数据库,不是一个个人调试服务。从这个意义上说,你的问题显然是一个打字错误(我很高兴你解决了它)因为你和我的评论都被发布了,所以答案是不必要的。我相信你不理解这一点。不管怎么说,我错了,祝你们过得愉快。如果你没有“名字”输入你的对象,为什么要使用pharantesis?@SalihŞenolıakarcıI+1你的答案,因为我设法看到了我的空白,谢谢,你意外地犯了错误,我的答案也意外地解决了:)是的,这就是问题所在。我看了3个小时的代码,然后发布到这里,然后我看到它。。。愚蠢的我。。。
registration : {
"firstname" : document.getElementById('registration-firstname'),
"lastname " : document.getElementById('registration-last-name'),
"email" : document.getElementById('registration-email'),
"role" : document.getElementById('registration-role')
}
registration : {
firstname : document.getElementById('registration-firstname'),
lastname : document.getElementById('registration-last-name'),
email : document.getElementById('registration-email'),
role : document.getElementById('registration-role')
}
// ↓
"lastname "