12.09.2014, 13:06
|
Аспирант
|
|
Регистрация: 12.11.2012
Сообщений: 70
|
|
Получить массив объектов по имени
здравствуйте.
в jquery новичек - мягко сказано.
есть форма с таблицей с полями. из строки в строку поля повторяются, и имена заданы name[] . при отправки формы запускается скрипт, которые перебирает все name[] и сохраняет.
так же есть добавление нового поля, при нажатии на кнопку в эту таблицу заносятся значения из другой формы, так же расположенной на этой странице.
Возникла необходимость добавить еще одно поле, которое при добавлении данных из второй таблицы высчитывается на основе данных из первой.
В данном случае, при добавлении данных из второй таблицы в первую должны просмотреться все name[] из первой и в новую строку занести значение наибольшего значения name[] + 1.
потом первая таблица с новыми строками сохраняется в БД, но с этим проблем нет.
Вопрос в том, как получить массив значений элементов name[] для последующих манипуляций... пробовал по-всякому, читая в интернете, но как-то не очень мне понятно... прошу прощения за столь простой вопрос
|
|
12.09.2014, 13:26
|
|
Профессор
|
|
Регистрация: 07.03.2011
Сообщений: 1,138
|
|
Зачем столько букв ?
написал бы просто - "сделайте мне как надо"
естественно никакого кода приводить не нужно по тому что тебе так проще помочь
|
|
12.09.2014, 13:33
|
Аспирант
|
|
Регистрация: 12.11.2012
Сообщений: 70
|
|
допустим,
<form>
<table>
<tr>
<td><input type="text" name="field1[]" value=""></td>
<td><input type="text" name="field2[]" value=""></td>
<td><input type="text" name="field3[]" value=""></td>
</tr>
<tr>
<td><input type="text" name="field1[]" value=""></td>
<td><input type="text" name="field2[]" value=""></td>
<td><input type="text" name="field3[]" value=""></td>
</tr>
<tr>
<td><input type="text" name="field1[]" value=""></td>
<td><input type="text" name="field2[]" value=""></td>
<td><input type="text" name="field3[]" value=""></td>
</tr>
</table>
</form>
как получить значения в виде массива для имен field1[], field2[], field3[] ?
пробовал (как понял из инета) так:
var field1 = $("field1[]");
allert (field1[3].value);
но естественно не работает у меня) как правильно?
|
|
12.09.2014, 14:03
|
Аспирант
|
|
Регистрация: 12.11.2012
Сообщений: 70
|
|
Так понимаю это общий массив для всех сразу field1[], field2[], field3[] ?
я имел в виду по отдельности для каждого field1[], field2[], field3[]
И на счет скобочек - даже если в имени они есть, в jq их не надо писать? просто скобочки были в коде, боюсь их убирать, да и много где они там))
далее значения получать как обычно, вроде fields[3].value ?
|
|
12.09.2014, 14:35
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
Последний раз редактировалось tsigel, 12.09.2014 в 14:40.
|
|
12.09.2014, 15:03
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от ShutTap
|
Так понимаю это общий массив для всех сразу field1[], field2[], field3[] ?
я имел в виду по отдельности для каждого field1[], field2[], field3[]
|
var a1=document.getElementsByName('field1[]');
var a2=document.getElementsByName('field1[]');
var a3=document.getElementsByName('field1[]');
Сообщение от ShutTap
|
далее значения получать как обычно, вроде fields[3].value ?
|
Нет...
var a=document.getElementsByName('field1[]');
alert(a[0].value);
|
|
12.09.2014, 15:35
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
ksa, переименовать забыл? Думаю, скорее так.
var a1=document.getElementsByName('field1[]');
var a2=document.getElementsByName('field2[]');
var a3=document.getElementsByName('field3[]');
<form>
<table>
<tr>
<td><input type="text" name="field1" value="1"></td>
<td><input type="text" name="field2" value="2"></td>
<td><input type="text" name="field3" value="3"></td>
</tr>
<tr>
<td><input type="text" name="field1" value="4"></td>
<td><input type="text" name="field2" value="5"></td>
<td><input type="text" name="field3" value="6"></td>
</tr>
<tr>
<td><input type="text" name="field1" value="7"></td>
<td><input type="text" name="field2" value="8"></td>
<td><input type="text" name="field3" value="9"></td>
</tr>
</table>
</form>
<script>
var a1=document.getElementsByName('field1');
var a2=document.getElementsByName('field2');
var a3=document.getElementsByName('field3');
alert(a1[0].value);
alert(a2[1].value);
alert(a3[2].value);
</script>
|
|
12.09.2014, 15:41
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от trikadin
|
переименовать забыл?
|
Ага...
|
|
12.09.2014, 16:55
|
Аспирант
|
|
Регистрация: 12.11.2012
Сообщений: 70
|
|
что-то не получается...
у меня 12 одинаковых полей name="field[]"
var num_tmp = $("[name='field[]]");
alert(num_tmp[10].val());
скрипт просто не выполняется...
пробовал и $("[name='field[]]") и $("[name='field]") и $("field[]") и $("field") ...
|
|
|
|