2013-02-22 72 views
0

在我的rails應用程序中,我需要填充1個字段,其值爲json中的值,點擊鏈接返回。有沒有關於如何正確使用Ajax來做這樣的事情的教程? 這是我的計劃,如何做到這一點:使用json的值填充輸入字段

1.Send get請求的json appname/controller/action.json

2. parse此JSON在客戶端

3.設置字段的value與解析的JSON

+1

你可以閱讀的文檔: http://api.jquery.com/jQuery.getJSON/。 jQuery會負責解析你的JSON,但如果你必須自己做,無論出於什麼原因:[如何在JavaScript中解析JSON](http://stackoverflow.com/questions/4935632/how-to-parse- JSON-中的JavaScript)。如果你有一個複雜的數據結構,這可能有助於弄清楚如何訪問它:[我有一個嵌套的數據結構/ JSON,我如何訪問特定的值?](http://stackoverflow.com/q/11922383/218196)。如何設置輸入的值也在文檔中解釋:http://api.jquery.com/val/#val2。 – 2013-02-22 09:55:00

回答

2

我假設你的JSON字符串就是這樣

[{"id":"1","name":"test1"},{"id":"2","name":"test2"},{"id":"3","name":"test3"},{"id":"4","name":"test4"},{"id":"5","name":"test5"}] 

使用$ .getJSON方法:

$.getJSON('/appname/controller/action.json', { get_param: 'value' }, function(data) { 
    $.each(data, function(index, element) { 
     $('body').append($('<div>', { 
      text: element.name 
     })); 
    }); 
}); 
+1

這幾乎是我做到的。除了我剛剛分配給輸入數據的值,因爲我只有一個項目在我的JSON中,所以每個都沒有必要 – 2013-02-22 10:11:40

2

假設數據是JSON對象,你可以使用這個$ .getJSON回調中:

var $inputs = $('form input'); 
$.each(data, function(key, value) { 
    $inputs.filter(function() { 
    return key == this.name; 
    }).val(value); 
}); 

第二種方式
如:JS fiddle

相關問題