2015-08-28 2 views
0

Я не могу понять, что это так просто. Я использую jQuery 1.4.2 (хотя я пробовал более поздние версии) в IE 11, и я не могу получить проверенное значение, когда значение должно быть истинным.Событие события JQuery Checkbox никогда не возвращается true

<input id="<%=ID%>" class="abcdeCheckBox" type="checkbox" value="<%=ID%>" /> 
var cachedCheckedValues = new Array(); 
$('.abcdeCheckBox').bind('click', function()  
    { 
     alert(this.checked); 
     var indexCheck = cachedCheckedValues.indexOf(this.value); 

     if(this.checked) 
     { 
      if(indexCheck == -1) 
      { 
       cachedCheckedValues.push(this.value); 
      } 
     } 
     else 
     { 
      cachedCheckedValues.splice(indexCheck, 1); 
      alert("removing: " + this.value); 
     } 
    }); 

Это никогда не возвращает истины, и я не могу понять, почему. Он никогда не добавляет значение к массиву, который у меня есть в коде.

+0

Нужно инициализировать переменную как массив. Вы не можете использовать '.push()' on 'null'. – Barmar

+1

Работает для меня: http://jsfiddle.net/barmar/Lxkd7qj1/ – Barmar

+0

Нужно попробовать обновить браузер или очистить кеш браузера? –

ответ

0

В вашем коде я заметил, что вы никогда не объявляете массив, прежде чем добавлять что-то к нему. jsfiddle link: https://jsfiddle.net/larryjoelane/t3f9xbu5/

//declare array 
var cachedCheckedValues = []; 


$('.abcdeCheckBox').bind('click', function()  
    { 


     alert(this.checked); 

     var indexCheck = cachedCheckedValues.indexOf(this.value); 

     if(this.checked) 
     { 
      if(indexCheck == -1) 
      { 
       cachedCheckedValues.push(this.value); 
      } 
     } 
     else 
     { 
      cachedCheckedValues.splice(indexCheck, 1); 
      alert("removing: " + this.value); 
     } 
    }); 
+2

'cachedCheckedValues' должен быть определен вне области действия клика, иначе он будет содержать только самое последнее значение – Jan

+0

. Я просто не показывал объявление, но он существует. Благодарю. –

+0

Как это повлияет на отображение 'alert (this.checked)'? – Barmar

Смежные вопросы