当我根据输入表单的表单中的内容进行循环时 我将属性名称用作选择器元素和对象索引数据数组,但索引是变量名称
如何在对象数组上将变量名转换为字符串索引 数据?
它的目的是使表单中的输入可以从数据的对象数组中自动填充
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;
答案 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/
代码遍历所有表单输入字段,检查字段名称是否作为数据对象中的键存在,如果找到键,则将字段值设置为数据对象中的字段值