我有一个 ejs 视图,其中包含我需要用数据填充的表单,以便可以编辑基础记录。我已经将包含数据的对象传递给视图,现在看到了两种填充表单的方法,并且希望得到一些帮助来决定哪一种更好。
选项 1 - “服务器端”人口
我可以将表单值直接放入元素中,如下所示:
<input type="text" id="txtFirstName" name="txtFirstName" value="<%= person.firstName%>" />
<input type="text" id="txtLastName" name="txtLastName" value="<%= person.lastName%>" />
...
etc
选项 2 - “客户端”人口
或者,我可以将整个对象返回给客户端,然后使用 javascript 填充表单字段,如下所示:
<script>
var data = "<%=JSON.stringify(person)%>".replace(/"/gi, '"');
var p = eval('(' + data + ')');
populateForm(p);
function populateForm (person) {
$("#txtFirstName").val( person.firstName );
$("#txtLastName").val( person.lastName );
....
etc
}
</script>
选项 2 的好处是,如果通过 ajax 加载新数据,则可以轻松地重用该函数来重新填充表单。它还消除了任何转义数据的需要,因为它已经全部在一个 js 对象中,而选项 1 需要某种类型的 html 编码和引号转义。另一方面,选项 1 可以在没有 js 的情况下工作。
是否有标准的、最佳实践的方法来做到这一点(并且是这些选项之一)?