Andrew Torr
Andrew Torr

Reputation: 1137

Form submission with JavaScript - why is it not getting values from the form?

So my form looks like:

<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>

and my JavaScript is all like:

$("#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);
    }
  });
});

but the alert I put in as a test says the username is null. I've tried onClick="functionName" in the HTML tag, I've tried replacing "id" with "name", everything I can think of. It's gotta be something simple...

Upvotes: 0

Views: 47

Answers (2)

Canvas
Canvas

Reputation: 5897

In your jQuery you need to use #, this is used to target an element using the ID.

Just update your code like so

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

Upvotes: 0

Singular1ty
Singular1ty

Reputation: 2615

I think you want var username = $("#username").val();.

You are missing the # identifier in your selector.

Edit: if, for some reason, you wanted to use name rather than the id you can use the selector: $( "input[name*='username']" ).val() instead. But using the id should be suitable.

Upvotes: 2

Related Questions