2012-05-25 4 views
1

특정 클래스 속성을 가진 체크 된 체크리스트의 목록을 가져 와서 그 값을 배열에 넣으려고합니다. 선택 메뉴를 활성화/비활성화하는 데 사용하고 싶습니다.jQuery 배열에 특정 클래스가있는 체크 된 체크 박스 목록을 가져옵니다.

<select name="inboxSelect" id="inboxSelect" class="selectDisabledSwitch" data-trigger="selectTrigger" disabled="disabled"> 
    <option value="">With selected</option> 
    <option value="1">Archive</option> 
    <option value="2">Mark as completed</option> 
</select> 


<input type="checkbox" name="inbox-1" id="inbox-1" value="1" class="selectTrigger" /> 
<input type="checkbox" name="inbox-2" id="inbox-2" value="2" class="selectTrigger" /> 
<input type="checkbox" name="inbox-3" id="inbox-3" value="3" class="selectTrigger" /> 

및 자바 스크립트/JQuery와 : 지금까지 나를 위해 작동하지 않는 것 다음을 가지고

var frontObject = { 
    getCheckboxCheckedArray : function(objClass) { 
     var thisArray = $('input:checkbox:checked.' + objClass).map(function() { 
      return this.value; 
     }).get(); 
     return thisArray; 
    }, 
    selectDisabledSwitch : function(obj) { 
     if (obj.length > 0) { 
      var thisObj = $(this); 
      var thisTrigger = thisObj.attr('data-trigger'); 
      var thisValues = frontObject.getCheckboxCheckedArray(thisTrigger); 
      frontObject.disableMenu(thisObj, thisValues); 
      $('.' + thisTrigger).live('change', function() { 
       var thisValues = frontObject.getCheckboxCheckedArray(thisTrigger); 
       frontObject.disableMenu(thisObj, thisValues); 
      }); 
     } 
    }, 
    disableMenu : function(thisObj, thisValues) { 
     if (thisValues.length > 0) { 
      thisObj.attr('disabled', false); 
     } else { 
      thisObj.attr('disabled', 'disabled'); 
     } 
    } 
}; 
$(function() { 
    frontObject.selectDisabledSwitch($('.selectDisabledSwitch')); 
}); 

죄송합니다 - 단지 명확히 - 나는 경우가 비활성화 된 선택합니다 특정 클래스가있는 확인란 중 하나라도 선택되어 있으면 적어도 하나를 선택하면 비활성화 된 특성이 제거됩니다.

+0

문제의 jsfiddle이, 도움이 항상! http://jsfiddle.net/2Wnv4/ 및 Im에 대한 질문에 대해 명확하지 않습니다. 특정 체크 박스가 선택되었을 때 선택을 해제 하시겠습니까? 체크 박스 1이 선택되어있는 경우와 마찬가지로 비활성화됩니다. –

+0

안녕하세요 한스 - 기본 게시물 아래에 설명을 추가했습니다. 미안하지만 명확하지 않았습니다. –

답변

0

var thisObj = $(obj); 

예를 들어 바이올린과

var thisObj = $(this); 

을 변경하려고 : http://jsfiddle.net/eR7Vs/

+0

감사합니다. F. Calderan - 완전히 그 중 하나를 놓쳤습니다! –

관련 문제