1

我即将重写几年前编写的脚本,该脚本检查表单是否有任何更改,以显示类似“您要保存更改吗?”之类的消息...

我的问题很简单,我应该将原始值存储在隐藏的表单字段中还是 Javascript 对象中?哪种方法更有效?

这是使用隐藏字段方法的示例:

<input type="text" name="first_name" id="first_name" value="John Smith" />
<input type="hidden" name="first_name_old" id="first_name_old" value="John Smith" />

和 javascript 对象替代:

var old_values = {
    'first_name': 'John Smith'
}
4

2 回答 2

1

在 JavaScript 对象中存储值更加透明和可维护,但意味着代码的更多结构化,而不是存储在隐藏字段或数据属性中。如果你正在构建一个更大的前端应用程序,在 HTML 中存储所有类型的值,很快就会变得一团糟,需要大量调用来修改 DOM。

如果有效意味着速度,你应该做一个基准,哪个更快。但是,如果您不更新这种微优化通常可以忽略不计的值,那么它会使代码的可维护性降低。

于 2013-01-28T11:57:58.027 回答
0

您可以将其存储为同一元素的数据属性。

编辑

误会见谅,可以这样存放

<input type="text" name="first_name" id="first_name" value="John Smith" data-old_value="John Smith" />

然后

$('#first_name').data('old_value');

会给你旧的价值

于 2013-01-28T11:44:03.817 回答