2013-11-10 78 views
0

我試圖將一個json對象(name & color)的值附加到表單中的兩個輸入字段。這是一個在我的web服務器中進行api調用的模型。 jQuery函數獲取第一個輸入字段的值,然後連接url + json文件位置,最後進行api調用。控制檯顯示值成功檢索,但我不確定如何將它們附加到其輸入字段。 SITE將json對象的值附加到輸入字段

JSON:

{ 
    "name": "test1", 
    "color": "red", 
} 

的jQuery/AJAX

$(document).ready(function() { 

    /** get the inputs we might need */ 
    var $result = $('#result'); 
    var $input = $('#input'); 

    $result.data('url', $result.val()); 

    var timer; 

    /** function to submit data to the server and 
     update the result input on success */ 
    function submitForm(input, newValue) { 
    $.ajax({ 
     type: "GET", 
     url: newValue, 
     data: {input:input}, 
     dataType: 'json', 
     success: function (data) { 
     $result.val(newValue); 
     } 
    }); 
    }; 

    /** on key up, fill #result with the url + input */ 
    $input.bind('keyup', function() { 
    var $this = $(this); 
    var inp = $this.val(); 
    var url = $result.data('url'); 
    var newValue = url + inp + '/info.json'; 

    if(timer) { clearTimeout(timer); } 
    timer = setTimeout(function(){ 
     submitForm(inp, newValue) ; 
    }, 500); 
    return false; 
    }); 
}); 
+0

阿賈克斯效應初探必須傳遞給你的'data'參數的JSON,所以你需要重複的是 - 如果該鍵爲'name',設置名稱字段的值。 – helion3

+0

'$ result.val(data.name)'或'data.color'如果需要其他 – charlietfl

+0

@charlietfl我試過但沒有顯示 – techAddict82

回答

1

我相信這個問題是從對象採取元素(從JSON),並給予這些值的輸入?

<input type="text" id="name"> 
<input type="text" id="color"> 

一個基本的例子:

var myobj = {"name":"botskonet","color":"blue"} 

for(k in myobj){ 
    document.getElementById(k).value = myobj[k]; 
} 

Fiddle

+0

OP已經顯示ID與JSON密鑰不同...不知道這個解決方案將如何幫助 – charlietfl

+0

名稱並不重要。您可以使用多種方法來查找正確的字段名稱等。我不知道有多少示例代碼只是爲我們簡化了。他問:「我試圖將一個json對象(名稱和顏色)的值附加到表單中的兩個輸入字段中。」,並且我給出了一個非常基本的演示。如果這沒有幫助,我很樂意進一步深入 – helion3

+0

+1這很好,現在如果我有'var myobj = {「name」:「botskonet」,「color」:「blue」,「animal」 :「gorilla」}'只想顯示'name'和'animal'我得到'getElementById'爲null。怎麼來的?是因爲它正在經歷一個for循環嗎? – techAddict82