Quentin..
42
1.)首先,在表单中输入标记的name元素末尾创建的数组的正确术语是什么?
"有时令人困惑的PHPism"
就JavaScript而言,一堆具有相同名称的表单控件只是一堆具有相同名称的表单控件,而包含方括号的表单控件只是表单控件,其名称包含方括号.
PHP的命名约定表单控件具有相同的名称有时是有用的(当你有很多的控制组,这样就可以做这样的事情的:
但确实让一些人感到困惑.其他一些语言已采用该约定,因为它最初是编写的,但通常仅作为可选功能.例如,通过这个JavaScript模块.
2.)如何使用JavaScript从该数组中获取信息?
它仍然只是获取与表单控件相同名称的属性elements.诀窍是,由于表单控件的名称包含方括号,则不能使用点符号,并必须使用方括号,就像任何其他包含特殊字符JavaScript属性的名称.
由于您有多个具有该名称的元素,因此它将是一个集合而不是单个控件,因此您可以使用标准for循环来循环它,并使用其length属性.
var myForm = document.forms.id_of_form;
var myControls = myForm.elements['p_id[]'];
for (var i = 0; i < myControls.length; i++) {
var aControl = myControls[i];
}
使用"i"作为一个全球性并不是一个好主意(它只是要求确定范围问题,无论是现在还是将来,因为你养成了坏习惯).使用`document.form`是不好的做法,因为(a)`document.forms`集合将使你更清楚你正在做什么,`form`不是一个非常详细的名称(和`document.form`可能会混淆`document.forms`让维护变得更加混乱.尽管如此,把事情搞得一团糟很好,我只是更明确,所以你可以看到发生了什么. (3认同)