john Smith
john Smith

Reputation: 17906

Get jquery Map from input attributes

i have a set of inputFields looking like :

<g:textField name="adrstrasse" data-id="adressen[${i}].strasse" class="newaddr" id="daten_vornametarea" value="${adresse.strasse}"/>
<g:textField name="adrort" data-id="adressen[${i}].ort" class="newaddr" id="daten_vornametarea" value="${adresse.telefon}"/>
<g:textField name="adrtelefon" data-id="adressen[${i}].telefon" class="newaddr" id="daten_vornametarea" value="${adresse.telefon}"/>

and i want to return those as a stringified map,

doing so :

var addrmap = $('.newaddr').map(function() {
        var $item = $(this);
                return {
        name: $item.data('id'), 
        value: $item.val()
    };
    }).get();
    var neu = JSON.stringify(addrmap); 
    alert(neu);

I´m getting a map looking like :

[{"name":"adressen[0].strasse","value":"Hanswarft1"},{"name":"adressen[0].ort","value":"Hallig Hooge"},{"name":"adressen[0].telefon","value":"12345678"}]

But I want it to look like :

[{"adressen[0].strasse":"Hanswarft1"},{"adressen[0].ort":"Hallig Hooge"},{"adressen[0].telefon":"12345678"}]

When I try something like this, ofcourse i get syntax errors

    var addrmap = $('.newaddr').map(function() {
        var $item = $(this);
                return {
        $item.data('id'):
        $item.val(),
    };
    }).get();
    var neu = JSON.stringify(addrmap); 
    alert(neu);

How do I return the map with data-id as parameter and value as value ? thanks in advance

Upvotes: 1

Views: 1493

Answers (1)

Igor Dymov
Igor Dymov

Reputation: 16460

That might do the job:

var addrmap = $('.newaddr').map(function () {
    var $item = $(this);
    var obj = {};

    obj[$item.data('id')] = $item.val();
    return obj;
}).get();

Upvotes: 2

Related Questions