2014-02-06 2 views
0

배열의 내용을 기반으로 양식의 확인란을 선택하려고합니다. 나는 월, 화, 수,과 목을 확인하기 위해 노력하고있어 그 배열,배열을 기반으로하는 확인란 설정에 문제가 있습니다.

<div id="daysoftheweek" class="control-group uncheckit"> 
     <label class="control-label" for="thedaysoftheweek">Which Days:</label> 
     <div class="controls" name="thedaysoftheweek"> 
      <label class="checkbox inline"> 
       <input type="checkbox" name="days" value="1"> Mon 
      </label> 
      <label class="checkbox inline"> 
       <input type="checkbox" name="days" value="2"> Tue 
      </label> 
      <label class="checkbox inline"> 
       <input type="checkbox" name="days" value="3"> Wed 
      </label> 
      <label class="checkbox inline"> 
       <input type="checkbox" name="days" value="4"> Thu 
      </label> 
      <label class="checkbox inline"> 
       <input type="checkbox" name="days" value="5"> Fri 
      </label> 
      <label class="checkbox inline"> 
       <input type="checkbox" name="days" value="6"> Sat 
      </label> 
      <label class="checkbox inline"> 
       <input type="checkbox" name="days" value="0"> Sun 
      </label> 
     </div> 
    </div> 

그래서 다음은

var day = ["1", "2", "3", "4"] 

는 HTML의 Console.log는 루프가 잘 돌아가고 있음을 보여줍니다.

이 버전은 배열의 마지막 부분 인 Thu 확인란 만 선택합니다. 3으로 끝나면 수요일은 체크되지만 월요일과 화요일은 체크하지 않습니다.

for (_i = 0, _len = days.length; _i < _len; _i++) { 
    day = days[_i]; 
    $("input[name=days]").val([day]); 
} 

이 하나가 라디오 버튼의 모든 설정 : 어떤 아이디어에 대한

for (_i = 0, _len = days.length; _i < _len; _i++) { 
    day = days[_i]; 
    $("input[name=days]").val([day]).prop('checked', true); 
} 

감사합니다, 찰리 매기

+2

라디오 버튼은 이름을 공유하며 체크 박스는 고유 한 이름을 가져야합니다. – j08691

+0

'_i = 0' 전에'var'을 잊지 마세요! 물론 사용하기 전에 'day' 변수도 선언하십시오. 당신은 세계의 군대가 어지럽히 길 원치 않습니다. – kapa

답변

0

당신은 선택

var days= ["1", "2", "3", "4"] 
for (var _i = 0, _len = days.length; _i < _len; _i++) { 
    $("input[name=days][value=" + days[_i] + "]").prop('checked', true); 
} 

으로 값을 사용할 필요가 데모 : Fiddle

는 또한 배열 이름은 체크 박스 (라디오 버튼은 이름 속성을 공유) 고유 한 이름을 가져야한다는 사실을 무시 days

+0

완벽한 작업. (배열은 일이었습니다. 내가 질문을 썼을 때 오타가되었습니다.) Arun에게 감사드립니다. – charliemagee

0

해야합니다, 당신이 할 수 있습니다 :

var day = ["1", "2", "3", "4"]; 
$('input[name="days"]').filter(function (i) { 
    return $.inArray(this.value, day) > -1 
}).prop('checked', true) 

jsFiddle example

+0

이 답변도 잘 작동했지만 기존 코드를 사용하는 것이 더 빠르기 때문에 첫 번째 코드를 선택했습니다. 감사합니다 j08691. – charliemagee

관련 문제