如何将变量名转换为对象jquery的索引字符串

时间:2016-01-18 04:10:48

标签: javascript jquery arrays json object

当我根据输入表单的表单中的内容进行循环时 我将属性名称用作选择器元素和对象索引数据数组,但索引是变量名称

  

如何在对象数组上将变量名转换为字符串索引   数据?

它的目的是使表单中的输入可以从数据的对象数组中自动填充



var data = {
  id: "4",
  Model: "804",
  Description: "AXIAL SETTER,100MM, MAGNETIC BASE"
};

var names = [];

if ($('#form').length == 1) {
  $('#form :input').each(function() {
    names.push($(this).attr('name'));
  });
  $.each(names, function(key, value) {
    $('[name="' + value + '"]').val(data.value);
    //value should be change with name, 
    //for example  :
    // $('name="Description"').val(data.Description);

  });
}

<form action="#" id="form" class="form-horizontal">
  <input type="hidden" name="id" />
  <br/>
  <input type="text" name="Model" placeholder="Model Of product" />
  <br/>
  <input type="text" name="Description" placeholder="Description Of product" />
  <br/>
  <button type="submit" class="btn-save">save</button>
</form>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

无需在相同数据上运行两次。你可以这样做来填写你的表格:

var data = {
  id: "4",
  Model: "804",
  Description: "AXIAL SETTER,100MM, MAGNETIC BASE"
};

if ($('#form').length == 1) {
  $('#form :input').each(function() {
    if (typeof data[$(this).attr('name')] != 'undefined'){
        $(this).val(data[$(this).attr('name')]);
    }
  });

}

查看https://jsfiddle.net/nfq22d9r/1/

代码遍历所有表单输入字段,检查字段名称是否作为数据对象中的键存在,如果找到键,则将字段值设置为数据对象中的字段值