我有一个包含约20个输入字段的表单。我捕获这些字段的值,然后进行一些计算并输出多个值。捕获表单数据:变量还是数组?
是否有捕获形式数据的一个优选的/推荐的方法是什么?目前我将每个表单字段存储到一个单独的变量中。我想知道是否将它存储到数组将是更好和更有效的方法。
我对JavaScript和编程一般都很陌生,试图学习最佳实践。
我有一个包含约20个输入字段的表单。我捕获这些字段的值,然后进行一些计算并输出多个值。捕获表单数据:变量还是数组?
是否有捕获形式数据的一个优选的/推荐的方法是什么?目前我将每个表单字段存储到一个单独的变量中。我想知道是否将它存储到数组将是更好和更有效的方法。
我对JavaScript和编程一般都很陌生,试图学习最佳实践。
我的最佳实践取决于我对数据的处理方式。如果我不需要遍历它,或者将它发送到另一个页面/服务,那么单个scoped变量没有任何问题。
如果我需要循环,我通常使用数组或对象来循环。
如果我必须将它传递给另一个页面/服务,我会创建一个对象变量来封装其余的部分,这样我就可以将它“字符串化”为JSON并解析回另一端的对象。
只是我认为,
皮特
您可能会考虑第三种方法 - 只使用表单中的数据而不将它存储在任何位置。
首先检查正确性,一旦它被认为是正确的只是使用你拥有的。
在我正在做的计算中,我需要使用几种不同公式中的某些数据,因此将它们存储到变量/数组中似乎对我来说是正确的方法。但我可能是错的。 – finspin 2012-02-01 21:45:37
我会将表单放入变量中,然后在计算中使用类似[[value]]的形式。 对于经常使用的变量,您可以将它们放入变量中。把它们放在数组中并不会给你带来太多好处,form是一种数组,所以不需要添加额外的数组。 – 2012-02-03 02:09:10
你应该始终分配属性 “名称= ...” 来输入元素,因此您可以使用类似:
var form = document.forms['form'];
var email = form['email'];
email = do something
如果你使用javascript ...如果你使用jquery它很简单$('input [name =“email”]')=做某事
我更喜欢这种方式,因为你可以调用变量的名字而不是数字, mple“form [0]对应于输入[name =”email“]”。
使用的array
S IN JavaScript的关联性来获得的唯一字段名和OOP的好处:
var formModel = new Array();
formModel['myField'] = getMyFieldValue(); // make 'myField' index to any object
然后,你可以做这样的事情:
formModel['myField'] // get the value
formModel.length; // number of fields added
for (entry in formModel) { /* loop thru entries */ }
formModel.sort([compareFunction]) // custom sort
formModel = []; // clear the model
只是一种方法,但在JS中的数组是非常灵活的和IMO在JS中使用不足的对象。
你可能想尝试[codereview.stackexchange.com(HTTP://代码审查。stackexchange.com)并包含您的代码。 – 2012-02-01 21:39:07