Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   не вставляются значения в div (https://javascript.ru/forum/dom-window/67147-ne-vstavlyayutsya-znacheniya-v-div.html)

dantist433 31.01.2017 12:02

Но я разобрался, спасибо за подсказку
у меня же есть
window.addEventListener('DOMContentLoaded', function())

вот в эту функцию и запихнул.

ksa 31.01.2017 13:44

Цитата:

Сообщение от dantist433
я разобрался

Все равно, что-то мне подсказывает, что ты роешь подземный ход на чердак... :(

dantist433 31.01.2017 22:55

Цитата:

Сообщение от ksa (Сообщение 442797)
Все равно, что-то мне подсказывает, что ты роешь подземный ход на чердак... :(

Все может быть
привел код в более менее понятный вид
var max_population=Array (16,5,4);

for (var i = 0; i < 3; i++)
{    
window.addEventListener('DOMContentLoaded', function() 
   {
   
   inp2 = document.createElement( 'input' );
   inp2.type = 'button';
   inp2.name = 'input_2';
   inp2.id = 'max_unit'+i;
   inp2.value = max_population[i];
   document.getElementById( 'units' ).appendChild( inp2 );
      
   var address = document.getElementById('max_unit'+i);
   var favoriteAddress = document.getElementById('unit'+i) ;
   
   if (address.value!=0)
   {   document.getElementById('max_unit'+i).onclick = function() {favoriteAddress.value=address.value ;address.value=0;  }   
   }
   else
    {   document.getElementById('max_unit'+i).onclick = function() {address.value=favoriteAddress.value ;favoriteAddress.value=5;  }  
    }

var form = document.querySelector('form');
form.addEventListener('input', function(e)
{
var el = e.target;                                                                      
el.classList.contains ('text'+i) && el.classList[ (el.value>max_population[i])?'add':'remove'] ('RedText'); 
});
});
}

<form name = "units" method="post" id="units" action="timers/units_t.php"  onsubmit="return validate_form ( );">
<table>

<tr>
<td>111</td><td>111</td><td>111</td><td> <input class="text0" size="3" id="unit0" name = 'unit0'></td><td></td>
</tr>
<tr>
<td>222</td><td>222</td><td>222</td><td> <input class="text1" size="3" id="unit1" name='unit1'></td><td></td>
</tr>
<tr>
<td>333</td><td>333</td><td>333</td><td> <input class="text2" size="3" id="unit2" name='unit2'></td><td></td>
</tr>
</table>
 <p><input type="submit"></p>
 </form>


И тут возникло сразу 2 вопроса:
1. Такое чувство что переменная i из for не передается в функцию, как это исправить???
Так как max_population[i] у меня получается undefined, а перед функцией все норм
2. Когда она передается(а у меня через PHP она передается) то при 1 нажатии значения передаются в инпут, а при повторном нажатии не передается обратно, как будто это условие не отрабатывает
if (address.value!=0)
   {   document.getElementById('max_unit'+i).onclick = function() {favoriteAddress.value=address.value ;address.value=0;  }   
   }
   else
    {   document.getElementById('max_unit'+i).onclick = function() {address.value=favoriteAddress.value ;favoriteAddress.value=5;  }  
    }

опять же вопрос почему?

ksa 01.02.2017 08:54

Цитата:

Сообщение от dantist433
Все может быть

Для меня считается аксиоматичным следующий факт. Если страница формируется серверным скриптом, то нет особого смысла генерить еще и функции, которые "доделают" ее еще и не клиенте.
Это все может сделать мощный сервер сразу. Без всякой нагрузки на клиент.

У тебя же получается какая-то каша, в которой ты путаешься сам.

Совет еще такой...
Сначала сделай сам хтмл и JS который будет в итоге. Если все там заработает как нужно - можно переходить к генерации этого хтмл и JS.
А пока ты гененрируешь то, что даже не понимаешь чего получается в итоге и как потом это все работает. :)

Твои вопросы получаются из серии "Я вот тут чего-то нагененрил... Но оно не работает или работает как то так, что мне не понятно..."
А ты должен четко понимать чего ты там генеришь.
Т.ч. начни все с простых хтмл и JS. Сделаешь там - пробуй генерить серверным скриптом.

Dilettante_Pro 01.02.2017 10:53

dantist433,
Цитата:

Сообщение от dantist433
Такое чувство что переменная i из for не передается в функцию, как это исправить???

Цикл должен быть включен в
window.addEventListener('DOMContentLoaded', function() 
   {
});

а не наоборот, как у вас


Часовой пояс GMT +3, время: 01:50.