Como puedo crear un diccionario de inputs con un forEach en Javascript? – javascript diccionarios foreach

Pregunta:


Lo que quiero hacer es crear un diccionario en javascript para después usarlo en python. Tengo algunos inputs dinámicos que tienen diferentes atributos que quisiera meter en un diccionario como puedo hacer esto?

Quiciera un output mas o menos a si:

ditionary2 = {
    'key': { u'type': u'TYPES', u'value': u'value', u'type_value': u'STR', u'mask': bool},
    'key': { u'type': u'TYPES', u'value': u'value', u'type_value': u'TYPE_VALUES', u'mask': bool},
    'key': { u'type': u'TYPES', u'value': u'value', u'type_value': u'TYPE_VALUES', u'mask': bool},
    'key': { u'type': u'TYPES', u'value': u'value', u'type_value': u'TYPE_VALUES', u'mask': bool},
     }

My html esta asi:

<div class="margin_bot" id="itemRows1">
  <p id="ProwNum1">
     <input class="params margin_bot input_text input_size text_input span-11" tipo="LAM" type="text" name="par_1" value="password" placeholder="Valor">
     <input class="params margin_bot input_text input_size text_input span-11" tipo="LAM" type="text" name="par_2" value="password2" placeholder="Valor"> 
  </p>
</div>

Y mi función en javacript se ve asi:

function create_kapps_dict(selector, content){
var items = $('p[id^="ProwNum"]').find('.params').filter(':visible');
var post_settings = [];
items.forEach( )
}

Pero por alguna razon no esta funcinado

Preguntado por: Rafael

alanfcm

Estas confundiendo javascript con jQuery. Estas utilizando un selector jQuery para llenar la variable items. Si vas a usar jQuery tienes que usar .each() en lugar de forEach(). Quedaria algo asi:

function create_kapps_dict(){
  var items = $('p[id^="ProwNum"]').find('.params').filter(':visible');
  var post_settings = [];
  items.each(function(i,item) {    
    var obj = {
      'type': $(item).attr('type'),
      'value': $(item).val(),
      'tipo': $(item).attr('tipo'),
      'mask': $(item).attr('placeholder')
    }
    post_settings.push(obj);
  });
  console.log(post_settings);
}

create_kapps_dict();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="margin_bot" id="itemRows1">
  <p id="ProwNum1">
     <input class="params margin_bot input_text input_size text_input span-11" tipo="LAM" type="text" name="par_1" value="password" placeholder="Valor">
     <input class="params margin_bot input_text input_size text_input span-11" tipo="LAM" type="text" name="par_2" value="password2" placeholder="Valor"> 
  </p>
</div>

Fuente

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *