jQuery如何将一些json记录加载到表单字段中?

问题描述:

我有一个JSON文件:jQuery如何将一些json记录加载到表单字段中?

{ 
    "data": "Click", 
    "size": "Here" } 

和形式:

<form> 
First name: <input type="text" name="firstname" /><br /> 
Last name: <input type="text" name="lastname" /> 
</form> 

我想知道什么是加载多个JSON记录到多个表单元素正确sintax?像形式的东西,ü要ü要修改和价值观得到queered进入这些领域

我知道我可以使用:

$getJSON('link_to_json_file' function() { 

}); 

,但我在这里卡住由于

或者,如果您的数据回报是像字段名值对:

{"firstname" : "John", "lastname" : "Doe"} 

你可以做到这一点,如:

$.getJSON('url_to_file', function(data) { 
    for (var i in data) { 
     $('input[name="'+i+'"]').val(data[i]); 
    } 
}); 
+3

' $ .each(data,function(key,val){});''而不是' for'会更好 – 2011-04-09 11:58:32

+5

为什么它会更好?我见过的基准测试显示,使用本地for循环遍历更快,特别是对于大型对象。 – 2011-04-09 12:07:30

+0

好吧,可能会快一点,但''each''语法看起来像一个普通的迭代器,与''''[']''相比,本地'for'有些东西,如果你没有使用非常大的对象,我认为你应该使用'each' – 2011-04-09 12:39:25

所以,$.getJSON有什么不对?它工作正常:

$.getJSON("1.json", function(data) { 
    $('input[name="firstname"]').val(data["data"]); 
    $('input[name="lastname"]').val(data["size"]); 
}); 
+0

是的,这工作,但我正在寻找一个更短版本的代码,因为我可能有20个输入框 – Patrioticcow 2011-04-09 12:20:30

您也可以使用$ .get like below;

$.get('your_file.[php/json]',function(d){ 
    $("input[name='firstname']").val(d.data); 
    $("input[name='firstname']").val(d.size); 
},'json'); 

你能来看看对JQuery的loadJSON插件http://code.google.com/p/jquery-load-json/?在页面http://code.google.com/p/jquery-load-json/wiki/WorkingWithFormElements中解释了这个插件如何将JSON对象加载到窗体中。你也可以在这里找到一个生动的例子http://jquery-load-json.googlecode.com/svn/trunk/edit.html?ID=17。我认为这正是你需要的。

$('form').loadJSON(data); 

这个插件可以处理所有的表单元素,如复选框,选择列表中的单选按钮等,如果你使用它,你需要从下载插件:只需使用下面的代码创建表单空的形式和负荷JSON http://code.google.com/p/jquery-load-json/source/browse/trunk/scripts/jquery.loadJSON.js