2016-01-18 59 views
0

當我根據表格中的內容進行循環時,輸入表格 我將屬性名稱用作選擇器元素和對象數據的索引數組,但索引是變量名如何將變量名稱轉換爲對象jquery的索引字符串

如何從一個變量名轉換爲字符串索引的對象陣列數據的 上?

它的目的是使在形式輸入可以自動從數據

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>

+0

您是否試過'jquery.loadJSON'? – Arvind

+0

當然可以。真正的數據來自ajax響應,但爲了便於手動創建。如數據變量 – Iwan

+0

所示,但我很難將jquery變量名稱**「值」**理解爲**對象數組索引**,例如「value」作爲索引「id」,從而變成**數據。 ID「** @Arvind – Iwan

回答

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/

代碼通過所有形式的輸入字段,檢查是否字段的名稱是存在,因爲在數據對象的關鍵運行並將字段值設置爲數據對象中的字段值,如果發現密鑰

+0

謝謝@Stefan Dochow,這是一種更高效的方法 – Iwan

相關問題