将JSON属性绑定到表单

我有一个JSON对象和一个

。 如果JSON对象具有名称与表单名称匹配的属性我希望输入显示此属性的值。 使用JQuery有一种简单的方法吗?

 var json = {foo: 'foo', bar: 'bar}; def form = $('#myform'); // something magical that assigns JSON property values to form inputs with matching names 

有问题的表格看起来像:

     

你可以运行一个循环来搜索elment并输入值:

  $.each(json,function(key,value) { form.find("input[name='"+key+"']").val(value); }); 

并为forms:

 

使用.field代替输入是使用textarea并选择

你的意思是:

 var json = {foo: 'foo', bar: 'bar}; def form = $('#myform'); for(var prop in json){ $("#myform input[name="+prop+"]")[0].value = json[prop]; } 

试试这个:

 var json = {foo: 'foo1', bar: 'bar1'}; for(var key in json) { if($('#myform input[name="'+key+'"]').length > 0){ $('#myform input[name="'+key+'"]').attr('value',json[key]); } } 

我认为这就是你想要的;)

请参见此处的示例: http : //jsfiddle.net/expertCode/FgwHe/

您可以使用我的插件,它非常简单: https : //github.com/devWaleed/JQuery-JSON-Form-Binding

如果要以自己的方式填充数据,则回调是可选的。

 $("#myform").jsonToForm({ data: {name: "Waleed", age: 23, gender: "Male"}, callbacks: { age: function(value){ $('[name="age"]').val(value+1); } } }); 

要么你找到你所有的输入并获得输入名称并检查它们在json中,如: http : //jsbin.com/ulelik/edit 。

 var json = {foo: 'foo', bar: 'bar', ContactEmail: "ContactEmail", fooo2 : "trigunatmak kulkarni"}; var inputs = $('input', '#myform').each(function() { if (json[this.name]) { this.value = json[this.name]; } }); 

如果在json对象中有属性,则选择所有输入并按名称检查,然后它将使用该属性值作为输入值。