1.) Во-первых, какова правильная терминология для массива, созданного в конце элемента name входного тега в форме?
"Oftimes Confusion PHPism"
Что касается JavaScript, то группа элементов управления с одним и тем же именем - это просто группа элементов управления с одинаковым именем, а элементы управления с именами, содержащими квадратные скобки, являются просто элементами управления с именами, которые включаютквадратные скобки.
Соглашение об именовании в PHP для элементов управления с одним и тем же именем иногда полезно (если у вас есть несколько групп элементов управления, поэтому вы можете делать что-то вроде этого:
<input name="name[1]">
<input name="email[1]">
<input name="sex[1]" type="radio" value="m">
<input name="sex[1]" type="radio" value="f">
<input name="name[2]">
<input name="email[2]">
<input name="sex[2]" type="radio" value="m">
<input name="sex[2]" type="radio" value="f">
) но смущает некоторых людей.Некоторые другие языки приняли соглашение, так как оно было изначально написано, но, как правило, только в качестве дополнительной функции.Например, через этот модуль для 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];
}