Показать сообщение отдельно
  #13 (permalink)  
Старый 31.01.2017, 22:55
Аспирант
Отправить личное сообщение для dantist433 Посмотреть профиль Найти все сообщения от dantist433
 
Регистрация: 21.02.2016
Сообщений: 37

Сообщение от ksa Посмотреть сообщение
Все равно, что-то мне подсказывает, что ты роешь подземный ход на чердак...
Все может быть
привел код в более менее понятный вид
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;  }  
    }

опять же вопрос почему?
Ответить с цитированием