2014-06-20 3 views
0

Я хочу, чтобы мой контрольный список запоминал значение проверенных параметров. Всякий раз, когда пользователь проверяет ящик, я хочу нажать значение в массив, всякий раз, когда он отменяет его, я хочу, чтобы он был удален. С моей кнопкой отправки я хочу отображать предупреждение для каждого элемента.Нажатие элементов списка элементов HTML в массив с помощью JS

Я могу заполнить массив, но по какой-то причине он перезаписывает предыдущие элементы. Кроме того, он просто не реагирует на «неконтролируемое состояние», и он не отображает ничего при подаче. Примечание: Мне нужно, чтобы он работал примерно на 200 входов позже.

<h1>Checklist</h1> 

<form> 
    <input type="checkbox" name="remember" id="remember" onclick="checkboxFunction(value)" value="F-Card geholt">F-Card geholt<br> 
    <input type="checkbox" name="remember" id="remember" onclick="checkboxFunction(value)" value="Ersti Rally">Ersti Rally <br> 
    <input type="checkbox" name="remember" id="remember" onclick="checkboxFunction(value)" value="TEST">TEST<br> 
</form> 

<script type="text/javascript"> 

    var checkbox = document.getElementsByName("remember"); 
    var checkboxArray = []; 

    function checkboxFunction(value) 
    { 
     for(var i=0, length=checkbox.length; i<length; i++) 
     { 
      if(checkbox[i].checked) 
      { 
       checkboxArray.push(value); 
      } 
      else if (!checkbox[i].checked && value == checkboxArray[i]) 
      { 
       checkboxArray.splice(value); 
      } 
     } 
    } 

    function alertFunction() 
    { 
     for(var i=0, length=checkbox.length; i<length; i++) 
     { 
      if (typeof checkboxArray[i] != 'undefined') 
      { 
       alert(checkboxArray[i]); 
      } 
     } 
    } 
</script> 

<input type="button" name="alert" value="Submit" onclick="alertFunction()"> 
+1

checkboxArray выходит за рамки для вашего alertFunction. – Eder

+0

Я пытался использовать его как публичный, но он тоже не работает, поэтому я подумал, что это может быть не проблема. Я пытался найти checkboxArray по ID, также не работал. – Fuby

+0

checkboxArray определен в checkboxFunction, поэтому он доступен только в пределах этой функции, а не во втором – Zbyszek

ответ

0

движение var checkboxArray = []; вне функции checkboxFunction

<script type="text/javascript"> 
     var checkboxArray = []; 
    function checkboxFunction(value) 
    { 
     var checkbox = document.getElementsByName("remember"); 


     for(var i=0, length=checkbox.length; i<length; i++) 
     { 
      if(checkbox[i].checked) 
      { 
       checkboxArray.push(value); 
      } 
      else if (!checkbox[i].checked && value == checkboxArray[i]) 
      { 
       checkboxArray[i] = null; 
      } 

      //alert(checkboxArray[i]); 
     } 
    } 

    function alertFunction() 
    { 
     for(var i=0, length=checkboxArray.length; i<length; i++) 
     { 
      alert(checkboxArray[i]); 
     } 
    } 
</script> 
Смежные вопросы