2010-04-30 7 views
1

Wikipedia's History 내역 페이지와 비슷한 것을 달성하려고합니다. 일련의 라디오 버튼을 동적으로 비활성화합니다.jquery를 사용하여 요청시 일련의 라디오 버튼을 비활성화하십시오.

즉 ... 그룹이에서 4 번을 선택하면, 그때는 개별적으로 또는 그룹으로 해제하는 방법을 알고

그룹 하나의 1-4 등을 사용할 수 없습니다,하지만 난 아니에요 일련의 그것을 할 방법을 잘 1-4 말씀 : 개별적으로

:

$("#version_history input[id^=versions_2_3]:radio").attr('disabled',true); 

또는 그룹 :

$("#version_history input[id^=versions_2]:radio").attr('disabled',true); 

입력의 이름은 versions_1_X 및 versions_2_X이며 X는 숫자입니다. 1..2..3 .. 등

내 마지막 목표는 클릭 한 라디오 버튼을 함수에 넘겨주는 것입니다. 그리고 반대쪽 그룹의 모든 라디오 박스를 숫자 나 그 이하의 값으로 설정 해제하십시오.

다음 HTML을 감안할 때
+0

나는 내 대답을 업데이트했습니다. –

답변

2

:

<div id="version_history"> 
    <div class="version_history_item"> 
     <input type="radio" name="original"> 
     <input type="radio" name="update"> 
     <span>description</span> 
    </div> 
    ... 
</div> 

한 가지 가능한 방법은 다음과 같습니다

function updateVersionRadioButtonAvailability() { 

    var versionHistoryElement = $('#version_history'), 
     originalIndex = $('input[name=original]:checked', versionHistoryElement).parent('.version_history_item').index(), 
     updateIndex = $('input[name=update]:checked', versionHistoryElement).parent('.version_history_item').index(), 
     visibleStyle = { visibility: 'visible' }, 
     hiddenStyle = { visibility: 'hidden' }; 

    $('.version_history_item', versionHistoryElement).each(function(index) { 
     $('input[name=original]', $(this)).css(index > updateIndex ? visibleStyle : hiddenStyle); 
     $('input[name=update]', $(this)).css(index < originalIndex ? visibleStyle : hiddenStyle); 
    }); 

} 

$(document).ready(function() { 
    $('#version_history input[name=original], #version_history input[name=update]').live('click', updateVersionRadioButtonAvailability); 
    updateVersionRadioButtonAvailability(); 
}); 

드라이 코딩 마일리지가 다를 수 있으므로.

+1

+1 : 지금 질문하고있는 내용을 봅니다. (* hangs head *). 그러나 코드 작성을 시도 할 때 색인 생성에 몇 가지 문제점이 있습니다. 'versionHistoryElement'는 각 인덱스마다 다를 필요가 있습니다 : 원래의 경우'[input = original]'이 필요하고 업데이트와 동일합니다. 따라서 아래의'.each()'함수에서 사용할 수 없습니다. – Mottie

+0

테스트 및 수정 –

+0

fudgey : 나는 각 인덱스마다 다른 버전이 필요하다는 것을 당신이 말하는지 이해하지 못합니다. 이 코드의 유일한 버그는'originalIndex'와'updateIndex'의 할당입니다. 그들 모두는'parent' 함수에 대한 호출을 놓쳤습니다. –

1

나는 당신이 성취하고자하는 것을 이해하면 잘 모르겠다. 그래서 나는 this demo을 만들었다. 기본적으로 선택한 그룹의 버전 번호가 낮은 모든 라디오 그룹을 비활성화합니다.

다시 클릭 할 방법이 없어서 모두 사용 중지할지 여부를 모르겠으므로 재설정 버튼도 추가했습니다.

정확히 무엇을 원하는지 조금 더 명확히한다면?

+0

글쎄 그게 ... 일종의 http://en.wikipedia.org/w/index.php?title=Paranoid_Android&action=history를 보면 정확히 내가 무엇을하려고하는지 보게 될 것입니다. 해야 할 것. – holden

+0

네, 켄의 코드를 보았으므로 내가 원하는 것을 볼 수 있습니다. 나는 코드를 작동시키기 위해 몇 가지를 조정해야만했다 ... 나는 그의 포스트에서 코멘트를 할 것이다. – Mottie

관련 문제