Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2015, 13:56
Новичок на форуме
Отправить личное сообщение для damon Посмотреть профиль Найти все сообщения от damon
 
Регистрация: 18.12.2015
Сообщений: 2

getElementsByName и выборка из name[]
Здравствуйте!

Подскажите, почему не получается с помощью getElementsByName выбрать значения из определенных инпутов, которые состоят из массива?

Есть форма, в которой два вида инпутов: input name="pr_uv[]" и input name="pr_neuv[]". Необходимо собрать все value из инпутов с именем name="pr_uv[]".

Получается это сделать с помощью document.getElementsByClassName, а хотелось бы через getElementsByName.

<html>
<head>
<title>getElementsByName</title>
<meta name="generator" content="notepad">
<meta http-equiv="content-type" content="text/html; charset=windows-1251">

<script type="text/javascript"> 

function propUvClass() {
	var elems = document.getElementsByClassName('prUv');

	for (var i = 0; i < elems.length; i++) {
		alert(elems[i].value);
	}
}

function propUvName() {
	var elems = document.getElementsByName("pr_uv[]");
	//var elems = document.getElementsByName("pr_uv");
	alert(elems);

	for (var i = 0; i < elems.length; i++) {
		alert(elems[i].value);
	}

}

</script>
</head>

<body>

<form action="" method="post" id="Form1" name="Form1">
<input onclick="propUvName();" class="buttom" type="button" value="Подсчет (ByName)">
<br>
<br>

name="pr_uv[]" <input class="prUv" type="text" value="1" name="pr_uv[1]"></input>
<input class="prUv" type="text" value="2" name="pr_uv[3]"></input>
<input class="prUv" type="text" value="3" name="pr_uv[5]"></input>
<br>
name="pr_neuv[]" <input type="text" value="5" name="pr_neuv[2]"></input>
<input type="text" value="7" name="pr_neuv[4]"></input>
<input type="text" value="9" name="pr_neuv[7]"></input>
<br>
<br>
<input onclick="propUvClass();" class="buttom" type="button" value="Подсчет (ByClassName)">

</form>

</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 18.12.2015, 14:33
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

damon,
getElementsByName Вы же отбираете по имени которого нету pr_uv[].
У Вас есть pr_uv[1], pr_uv[3],pr_uv[5]
Ответить с цитированием
  #3 (permalink)  
Старый 18.12.2015, 14:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

damon,
var elems = document.querySelectorAll('[name^="pr_uv"]');
Ответить с цитированием
  #4 (permalink)  
Старый 18.12.2015, 14:38
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

damon,
<html>
<head>
    <title>getElementsByName</title>
    <meta name="generator" content="notepad">
    <meta http-equiv="content-type" content="text/html; charset=windows-1251">

    <script type="text/javascript">

        function propUvClass() {
            var elems = document.getElementsByClassName('prUv');

            for (var i = 0; i < elems.length; i++) {
                alert(elems[i].value);
            }
        }

        function propUvName() {
            var elems = document.querySelectorAll('[name^="pr_uv"]');
            //var elems = document.getElementsByName("pr_uv");

            for (var i = 0; i < elems.length; i++) {
                alert(elems[i].value);
            }

        }

    </script>
</head>

<body>

<form action="" method="post" id="Form1" name="Form1">
    <input onclick="propUvName();" class="buttom" type="button" value="Подсчет (ByName)">
    <br>
    <br>

    name="pr_uv[]" <input class="prUv" type="text" value="1" name="pr_uv[1]"></input>
    <input class="prUv" type="text" value="2" name="pr_uv[3]"></input>
    <input class="prUv" type="text" value="3" name="pr_uv[5]"></input>
    <br>
    name="pr_neuv[]" <input type="text" value="5" name="pr_neuv[2]"></input>
    <input type="text" value="7" name="pr_neuv[4]"></input>
    <input type="text" value="9" name="pr_neuv[7]"></input>
    <br>
    <br>
    <input onclick="propUvClass();" class="buttom" type="button" value="Подсчет (ByClassName)">

</form>

</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 23.12.2015, 16:16
Новичок на форуме
Отправить личное сообщение для damon Посмотреть профиль Найти все сообщения от damon
 
Регистрация: 18.12.2015
Сообщений: 2

ОК, понял.
Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из базы на основании результата выборки djonA Серверные языки и технологии 12 13.05.2013 14:37
Выборка элемента по динамично добавленному Id vladimirlip jQuery 6 19.12.2012 14:26
Проблема с getElementsByName - Help! lamer Элементы интерфейса 18 21.03.2012 13:34
аналог getElementsByName MaxB jQuery 2 04.08.2009 19:39
возможно: массив + выборка mvorobjov Общие вопросы Javascript 5 13.08.2008 17:54