johnwj
johnwj

Reputation: 449

How to get selected dropdown value in Node app

With a handlebar home.handlebars that has this dropdown menu for gender as part of the registration form...

<form id="register-modal" class="ui modal form" method="post" action="/register">
  <div class="field">
    <label>Username</label>
    <input type="text" name="username" placeholder="Username">
  </div>
  <div class="field">
  <div class="two fields">
    <div class="field">
      <label>Age</label>
      <input type="text" name="age">
    </div>
    <div class="field">
      <label>Gender</label>
      <select class="ui fluid dropdown">
        <option value="male">Male</option>
        <option value="female">Female</option>
        <option value="non-binary">Non-binary</option>
      </select>
    </div>
  </div>
</div>
 <div class="field">
    <label>Email Address</label>
    <input type="text" name="email" placeholder="Email Address">
  </div>
  <div class="field">
    <label>Password</label>
    <input type="password" name="password" placeholder="Password">
  </div>
  <center><button class="ui button" type="submit">Submit</button></center>
</form>

I have a function that creates a new user object like this...

function user(name, pass) {
   return {
      name: name,
      pass: pass
   };
}  

Here is how I'm retrieving the information from the form. This is routes.js:

router.post('/register', (req,res) => {
var name = req.body.username;
var pass = req.body.password;
var email = req.body.email;

if (!name || !pass || !email ) {
  res.redirect('registration?code=fail');
} else{
db.insertUser(creations.user(name,pass,email,false),(user) => {
  if(user){
    db.login(user,(sessionID)=>{
      res.cookie('sessionID', sessionID);
      res.redirect('/feed');
    })
  } else res.redirect('registration?code=IU');
})
}})

Upvotes: 0

Views: 4165

Answers (1)

johnwj
johnwj

Reputation: 449

I figured it out. To grab the selected value from the dropdown, I just call:

var gender = req.body.gender

Upvotes: 1

Related Questions