【发布时间】:2011-05-13 21:43:16
【问题描述】:
我有一个类似Convert an HTML form field to a JSON object with inner objects 的问题,但在另一个方向。
这是来自服务器的 JSON 对象响应:
{
company : "ACME, INC.",
contact : {
firstname : "Daffy",
lastname : "Duck"
}
}
这是 HTML 表单:
<form id="myform">
Company: <input type="text" name="company" />
First Name: <input type="text" name="contact.firstname" />
Last Name: <input type="text" name="contact.lastname" />
</form>
这是(伪)代码:
var aFormFields;
for (var i = 0, iMax = aFormFields.length; i < iMax; i++) {
var sFieldName = aFormFields[i].getAttribute('name');
eval("sFieldValue = oResponse."+sFieldName);
}
好的,我的解决方案有效,但我正在寻找一种从代码中删除邪恶 eval 的好方法。 该解决方案还应该适用于字段名称中包含任意点数的表单字段。
【问题讨论】:
-
你的直觉是正确的:如果你认为你需要使用
eval(),那么你可能需要学习一些新的东西 :-) 继续嗅探你的代码! -
我不太确定:您是要从 AJAX 服务器响应中填充输入字段,还是要从输入字段的内容中生成服务器响应?
-
在一个不相关的说明中:来自服务器的响应不是有效的 JSON。
标签: javascript json object eval forms