从json(dojo)填充表单

从json(dojo)填充表单,json,dojo,Json,Dojo,我有一个json{“Name”:“@@”,“Phone”:“9999999999”,“EMail”:example@ex.com“} 我想把这个对象的值填入一个表单…怎么做? 这是表格 <form data-dojo-type="dojox.form.Manager" name="form" id="form" method="post"> <tr><td> <input type="text" required="true" name="Name" i

我有一个json
{“Name”:“@@”,“Phone”:“9999999999”,“EMail”:example@ex.com“}
我想把这个对象的值填入一个表单…怎么做? 这是表格

<form data-dojo-type="dojox.form.Manager" name="form" id="form" method="post">
<tr><td>
<input type="text" required="true" name="Name" id="Name" data-dojo-type="dijit.form.ValidationTextBox"/></tr></td>
<tr><td>
<input type="text" name="Phone" id="Phone" data-dojo-type="dijit.form.ValidationTextBox"/></tr></td>
<tr><td>
<input type="text" name="Email" id="Email" data-dojo-type="dijit.form.ValidationTextBox"/></tr></td>
</form>


谢谢

我会在json上使用一个简单的javascript循环

var data = JSON.parse(jsonDataString);
for (index in data) {
    var el = document.getElementById(index);
    if (el)
        el.value = data[el];
}

dojox.form.Manager
包括
dijit.form.\u FormMixin
,它提供了.setValues函数。 您应该能够使用JSON对象调用
form.setValues
。这样做的好处是,它可以正确地在每个小部件上调用
.set(“value”,…)
,以确保Dijit小部件具有新的值。只需在DOM节点上分配“
.value
”属性就可以绕过Dijit逻辑


\u FormMixin
上也有一个等价的
.getValues
,它的作用正好相反。

要在表单中设置值,请尝试以下操作:-

var obj = {"Name":"@@","Phone":"9999999999","EMail":"example@ex.com"};
dijit.byId('form').set('value',obj);

我知道它很晚了,但它可以工作:-

这在某些情况下可以工作,但是它直接在DOM节点上设置值,绕过Dojo小部件中的任何值逻辑。因此,您可能会绕过验证警告和小部件中的所有其他内容。