Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Поиск динамически созданных input / 6 сообщений из 6, страница 1 из 1
01.11.2017, 14:18
    #39546022
Jugador1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск динамически созданных input
Добрый день.
Есть форма в которой построчно поля: <input type=text class=summpole name=summ[]> <input type=text class=countpole name=count[]>

Добавляются они динамически. Появилась необходимость подсчитать итоговую сумму : построчно сумма*кол-во и итоговую сумму всех строк.
Сделал некую функцию, которая при клике на кнопку с id ppp в цикле бежит по всем полям и заносит их в массив (не заносит)
т.к. поля всегда парны, я надеялся что два цикла заполнят массивы и в массиве data у ключа 0 будет значение первой строчки суммы а у массива data2 в том-же ключе 0 кол-во.
Вариант что 1 поля нет или оно пустое пока не рассматривал.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
 function summdog(){
 var sC = "";
    var data = new Array();
    var data2 = new Array();

$('#ppp').click(function() {
    
    $(".summpole").each(function() {
     
       data.push($(this).val());
    });
    $(".countpole").each(function() {
      
       data2.push($(this).val());
    });

   
});
alert(data2);
 /* data.forEach(function(item, i, data) {
  alert( i + ": " + item + " (массив:" + data + ")" );
});   */                 
                 }



Так вот в массив данные не ложатся, хотя соотв. alert($(this).val()); показывает, но очень странно.
пример имеем всего 1 строчку
Если нажать кнопку 1 раз, алерт выскочит 1 раз с значением первого поля, нажмем второй раз, будет 2 алерта подряд и т.д.
...
Рейтинг: 0 / 0
01.11.2017, 15:15
    #39546099
oaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск динамически созданных input
Jugador1991,

а почему переменные-массывы data и data2 за переделами обработчика клика? так задумано?
...
Рейтинг: 0 / 0
01.11.2017, 15:25
    #39546109
Jugador1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск динамически созданных input
oakenJugador1991,

а почему переменные-массывы data и data2 за переделами обработчика клика? так задумано?

Это случайно, пробовал по разному. Если их положить внутрь, то массив заполняется, но алерт выскакивает Х раз, где Х-это сколько раз нажимали кнопку. Сначала думал, что он так Х раз заполнил массив, но нет, просто событие $('#ppp').click(function() { срабатывает много раз.

С одной стороны будет просто пересчитывать много раз, но планировал повесить событие на onkeyup и пересчитывать когда меняем сумму или кол-во, но тогда заполняя 10 строчку, если было нажато 30 клавиш, то нажимая 31 скрипт отработает 31раз, нажимая 32 отработает еще 32 раза, 33 еще 33 раза. т.е. геометрическая прогрессия
...
Рейтинг: 0 / 0
01.11.2017, 15:41
    #39546142
oaken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск динамически созданных input
Jugador1991,

Судя по твоему коду при нажатии на "#ppp" никакого алерта не должно быть, он будет если вызвать summdog, но поять же этот вызов привяжет еще один обработчик к кнопке. Вобщем каша какая-то здесь.
...
Рейтинг: 0 / 0
01.11.2017, 15:41
    #39546143
Jugador1991
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск динамически созданных input
Блин, разобрался, я затупил(
Функцию переделал, а ее вызов нет. и получилось, что у кнопки было onclick=summdog

в котором был код $('#ppp').click(function() {

и выходило при нажатии на кнопку функция ловила нажатие на кнопку, которая ловила нажатие на кнопку и т.д.
...
Рейтинг: 0 / 0
01.11.2017, 15:44
    #39546146
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск динамически созданных input
Jugador1991показывает, но очень странно
Это такой ты скрипт написал...

Как вариант
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function () {
	var sC = "";
	var data = new Array();
	var data2 = new Array();
	$('#ppp').click(function() {
		$(".summpole").each(function() {
		   data.push($(this).val());
		});
		$(".countpole").each(function() {
		   data2.push($(this).val());
		});
		alert(data2);
	});
})
</script>
</head>
<body>
<input type='text' class='summpole' name='summ[]' /> <input type='text' class='countpole' name='count[]' />


<input type='text' class='summpole' name='summ[]' /> <input type='text' class='countpole' name='count[]' />


<input type='text' class='summpole' name='summ[]' /> <input type='text' class='countpole' name='count[]' />


<button id='ppp'>Test</button>
</body>
</html>
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Поиск динамически созданных input / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]