2012-02-27 2 views
0

페이지를 동적으로 생성하고 여러 라디오 버튼 세트가 있습니다. 라디오 버튼의 id 태그에 레코드 ID를 사용해야합니다. 예 :JQuery, 동적 라디오 버튼 일명 radio34 등을 기반으로 div 표시/숨기기?

<input type="radio" name="review_flag1797" id="review_flag1797" 
     value="n" checked="checked" /> 

내 div의 표시/숨기기를 처리하는 단일 JQuery 함수를 어떻게 만들 수 있습니까? 라디오 버튼의 값은 y, nr입니다. 값이 n 일 때 내 div를 숨기고 yr으로 표시해야합니다.

더 복잡하게하려면 라디오 버튼의 라디오를 쓸 때 다른 값으로 설정할 수 있습니다.

편집

<div id="my_content1797"> 
content 
</div> 
+0

나는이 문제를 정말로 이해하지 못한다. 너 무슨 얘기하고있어? 지금까지 뭐 해봤 어? 어디서 붙어 있니? * 편집 : * 그리고 당신은 하나의 div를 제어하는 ​​몇 개의 버튼을 가지고 있습니까? –

+0

@FelixKling 그것은 라디오 버튼 집합에 특정한 div가 될 것이고, 내 문제는 라디오 버튼에서 div를 찾는 것입니다. – Jules

답변

0

난 당신이 조금 더 쉽게 인생을 만들기 위해 세트의 ID를 저장하는 data-* 속성을 사용하는 것이 좋습니다, 어쩌면 또한 그 라디오 버튼을 공통 클래스 제공 : 모든 당신을

<input ... class="someClass" ... data-id="1797" ... /> 

을 해야 할 일 :

$('.someClass').change(function() { 
    if(this.checked) { 
     $('#my_content' + $(this).data('id')).toggle(this.value !== 'n'); 
    } 
}); 
+0

그래서 입력과 div 모두 동일한 클래스 세트를 가져야합니까? – Jules

+0

아니요, 이벤트 요소 만 입력 요소에 바인딩합니다. 해당 div는 ID를 통해 발견됩니다. 클래스는 요소를 쉽게 선택하도록 추가됩니다. –

+0

값이 'n'인 경우 페이지로드시 숨김 상태가 좋지 않습니까? 지금은'style = "display : none;"'now :( – Jules

0

난 당신이 jQuery를 토글() 메소드를 원하는 생각합니다. 당신은 라디오를 추가 진술 후이를 포기해야

$("input[value!='n']").parent().show(); 

제공

http://api.jquery.com/toggle/

onclick="$('#my_content<%=record_id%>').toggle(this.checked);" 
+0

동적으로 생성 된 div 및 라디오 버튼 ID와 함께 작동합니까? – Jules

+0

표시/숨기기를 시도하는 div의 ID를 알고있는 것이 더 좋지만, 어떤 자식 (div 자식 만) 인 경우 부모 내에서 태그 이름을 사용하여 선택할 수 있습니다. 내 요점은, 당신은 어떤 시점에서 DIV 개체에 대한 참조를 얻을 필요가있다. 하지만 그렇습니다. 역동적 인 컨트롤은 공정한 게임입니다. –

+0

jquery onclick에 div 이름을 동적으로 전달할 수 있다고 생각합니다.하지만 어떻게 보이나요? – Jules

0

당신은

$("input[value='n']").parent().hide(); 

가 표시하려면이 문을 사용하여 부모 사업부를 숨길 수 있습니다 버튼을 동적으로 변경하고 라디오 입력의 변경 핸들러에서도 사용할 수 있습니다. 이 명령.을 함수에 넣고 호출 할 수 있습니다.

div가 상위가 아닌 경우 http://api.jquery.com/closest/도 시도해보십시오. 또한 부모를 선택합니다.

$("input[value='n']").closest(...).hide();