使用JavaScript提交表单 - 为什么不从表单中获取值?

时间:2015-08-12 23:28:28

标签: javascript jquery html forms

所以我的表格如下:

<form id="user_form">
      <p><label for="username">Username: </label>
        <input id="username" type="text"></p>
      <p><label for="password">Password: </label>
        <input id="password" type="text"></p>
      <p><label for="email">E-mail: </label>
        <input id="email" type="text"></p>
      <p><label for="first_name">First Name: </label>
        <input id="first_name" type="text"></p>
      <p><label for="last_name">Last Name: </label>
        <input id="last_name" type="text"></p>
      <p><input id="notif_submit" type="submit" value="Create"></p>
    </form>
  </div>

我的JavaScript就像:

$("#user_form").submit(function(){
  event.preventDefault();
  var username = $("username").val();
  var password = $("password").val();
  var email = $("email").val();
  var first_name = $("first_name").val();
  var last_name = $("last_name").val();
  var newUser = new Parse.User();
  alert(username);
  newUser.set("username", username);
  newUser.set("password", password);
  newUser.set("email", email)
  newUser.set("first_name", first_name);
  newUser.set("last_name", last_name);
  newUser.signUp(null, {
    success: function(user) {
      alert("Success!");
    }, error: function(user, error) {
      alert("Error: " + error.code + " " + error.message);
    }
  });
});

但我作为测试输入的警告表示用户名为null。我试过onClick =&#34; functionName&#34;在HTML标记中,我尝试替换&#34; id&#34;用&#34; name&#34;,我能想到的一切。它必须简单......

2 个答案:

答案 0 :(得分:3)

我想你想要var username = $("#username").val();

您在选择器中缺少#标识符。

修改:如果出于某种原因,您希望使用name而不是id,则可以使用选择器:$( "input[name*='username']" ).val()。但是使用id应该是合适的。

答案 1 :(得分:0)

在您的jQuery中,您需要使用#,这用于使用ID定位元素。

只需更新您的代码

 var username = $("#username").val();
 var password = $("#password").val();
 var email = $("#email").val();
 var first_name = $("#first_name").val();
 var last_name = $("#last_name").val();