求助:JavaScript无法获取表单输入框值,返回undefined
解决表单输入值获取undefined的问题
核心问题及修复方案:
getElementsByName返回集合,无法直接取value
document.getElementsByName()返回的是NodeList元素集合,必须通过索引[0]获取单个输入框元素后,再访问.value属性。变量名拼写错误
JavaScript代码里的confirmPassowrd拼写错误,应为confirmPassword,和HTML中输入框的name属性值保持一致。未阻止表单默认提交行为
点击提交按钮后,表单会默认刷新页面,导致控制台日志无法留存,需在函数中阻止默认提交动作。用数组存储键值对数据不合适
用户数据是键值对结构,应使用对象{}而非数组[]存储。
修复后的代码:
JavaScript代码:
function registrar(event) { // 阻止表单默认提交刷新页面 event.preventDefault(); // 通过[0]获取集合中的单个输入框元素 let nombre = document.getElementsByName("nombre")[0].value; let apellido = document.getElementsByName("apellido")[0].value; let username = document.getElementsByName("username")[0].value; let email = document.getElementsByName("email")[0].value; let password = document.getElementsByName("password")[0].value; // 修正拼写错误 let confirmPassword = document.getElementsByName("confirmPassword")[0].value; console.log("Pass: " + password); console.log("Confirm: " + confirmPassword); if (password !== confirmPassword) { alert("Contraseñas No coinciden"); } // 使用对象存储用户数据 var usuario = {}; usuario["nombre"] = nombre; usuario["apellido"] = apellido; usuario["username"] = username; usuario["email"] = email; usuario["password"] = password; console.log(usuario); }
HTML代码(仅修改表单的onsubmit属性):
<form class="registrarse__container" id="registro__form" method="POST" onsubmit="registrar(event)"> <!-- 其余HTML内容保持不变 --> </form>
内容的提问来源于stack exchange,提问作者ElM4urii
相关产品推荐
相关产品推荐

