html - jQuery create a real-time array from multiple inputs with the same class -


i have multiple inputs on page have same class name authority-email. using jquery values inputs using following:

var emailobj = {}; $("input[class=authority-email]").each(function () {   var email = $(this).val()    emailobj = email;    console.log(emailobj); }); 

these inputs can removed , added dom using jquery. values within inputs editable.

as input changes (remove, add, edit) best way pass values in real-time emailobj?

your current code changing emailobj object string on each iteration of loop, instead of amending property of object itself. note can use . style selector match elements class.

to achieve require, can use map() create array group of elements in jquery object. can assign required property of emailobj object. example:

var emailobj = {}; emailobj.emails = $("input.authority-email").map(function () {     return this.value; }); console.log(emailobj.emails); // = [ 'a@a.com', 'b@b.com', ... ] 

to update object in 'real-time', hook change , keyup events of inputs themselves:

var emailobj = {}; $("input.authority-email").on('change keyup', function() {     emailobj.emails = $("input.authority-email").map(function () {         return this.value;     });     console.log(emailobj.emails); // = [ 'a@a.com', 'b@b.com', ... ] }); 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -