Search code examples
javascripthtmlforms

Getting all form values by JavaScript


I have form:

<form onchange="allvaluestostring()">
    <select name="status">
         <option value="*">All</option>
         <option value="1">Active</option>
         <option value="0">Inactive</option>
    </select>
    <select name="size">
          <option value="*">All</option>
          <option value="small">Small</option>
          <option value="big">Big</option>
    </select>
</form>

And the onchange action of any input in form I need to get a JavaScript string, for example "status=1&size=big" for using in httprequest.

Does there exist something in JavaScript that will take all form values when one of form inputs will be changed?

I used <select name="status" onchange="showExporteditems(this.name,this.value)">, but this will take only one input value for using only "status=1", but I need on each onchage all values from all inputs for string like "status=1&size=big&...etc....".

Without using jQuery.


Solution

  • For input fields you could use ECMAScript 6 like the following:

    Get your form in a constant:

    const form = document.querySelector('form')
    

    Grab all values:

    Object.values(form).reduce((obj,field) => { obj[field.name] = field.value; return obj }, {})
    

    The above snippet will produce an object with the input name as the key and its value.