我试图尝试一个简单的登录页面。我添加了一些文本字段,并希望使用javascript或jquery读取它们。我遇到的问题是,即使我在字段中键入文本,每次使用javascript和使用jquery时都会出现空错误。
HTML:
<label id='userNameLabel' class='inputLabel' for='userNameInput'>Username</label>
<input id='userNameInput' name='User' class='userInput' type='text' value=''>
<label id='passwordLabel' class='inputLabel' for='passwordInput'>Password</label>
<input id='passwordInput' name='Password' class='userInput' type='text' value=''>
<input id='submitSignIn' class='button' type='submit' value='Log In'>
JS:
$(document).ready(function(){
$('#submitSignIn').click(function(){
$userName = $('#userNameInput').text();
$userName = $('#passwordInput').text();
$rememberMe = $('#rememberMe').val();
});
})
-OR
$(document).ready(function(){
$('#submitSignIn').click(function(){
$userName = document.getElementById(userNameInput).value;
$userName = document.getElementById(passwordInput).value;
$rememberMe = document.getElementById(rememberMe).value;
});
})
有谁能告诉我为什么会遇到这个问题?
答案 0 :(得分:5)
$userName = $('#userNameInput').text();
这会尝试获取输入的子节点并从中提取文本。
输入元素不能包含任何子节点。你想要val()
。
$userName = document.getElementById(userNameInput).value;
这会尝试通过字符串变量userNameInput
中的id获取元素,这是未声明的。你需要在它周围加上引号,使它成为一个字符串文字。
答案 1 :(得分:0)
你的jQuery正在使用.text()
而不是.val()
- 输入是自闭元素,因此没有任何文本。
您的JavaScript缺少userNameInput
周围的引号,这意味着它获取变量userNameInput
而不是字符串"userNameInput"
。
答案 2 :(得分:-1)
检查方法
$(document).ready(function(){
$('#submitSignIn').click(function(){
$userName = $('#userNameInput').val();
$userPass = $('#passwordInput').val();
})