我有一个JSON对象和一个
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对象中有属性,则选择所有输入并按名称检查,然后它将使用该属性值作为输入值。