2013-02-22 84 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