BB Design
BB Design

Reputation: 705

Pass the specific submitted form to a function with jQuery/Javascript

I want to intercept a form submission, then pass the form as a variable to a Javascript function, then grab form element values within that specific form. In my example, there could be more than one form with class "formtype". I don't think what I have here is quite correct, but maybe close? How do I reference the specific form that has been submitted, in case of multiple "formtype" class forms?

$('.formtype').on('submit', function(e){
    var $submittedform=$(this);
    e.preventDefault();
    processForm($submittedform);
});

function processForm($submittedform){
    var email=$($submittedform+' .email').val();
}

Upvotes: 2

Views: 1080

Answers (1)

baao
baao

Reputation: 73241

You are pretty close, but use find() instead of the string concatenation

$('.formtype').on('submit', function(e) {
  var $submittedform = $(this);
  e.preventDefault();
  processForm($submittedform);
});

function processForm($submittedform) {
  console.log($submittedform.find('input.email').val())
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="formtype">
  <input class="email" value="foo">
  <input type="submit">
</form>

<form class="formtype">
  <input class="email" value="bar">
  <input type="submit">
</form>

Upvotes: 2

Related Questions