html输入标记始终在Javascript中读取null

时间:2014-08-20 06:07:55

标签: javascript jquery html

我试图尝试一个简单的登录页面。我添加了一些文本字段,并希望使用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;
 });
})

有谁能告诉我为什么会遇到这个问题?

3 个答案:

答案 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();
     })