2012-04-26 4 views
0

라디오 버튼 그룹과 텍스트 영역이있는 ASP .Net 페이지가 있습니다..Net Jquery 라디오 버튼 토글 텍스트 영역

범죄 설명 텍스트 영역을 토글하고 싶기 때문에 "예"를 선택하면 상황을 설명해야합니다. 그렇지 않으면 텍스트 영역이 다른 모든 사람들에게 표시되지 않습니다.

둘 다 runat 서버이므로 웹 양식 마스터 페이지에서 생성 된 ID를 생성합니다. 그러나 나는 라디오 버튼의 가치를 얻는 것처럼 보이지 않는다.

다른 스레드에서 몇 가지 솔루션을 시도했지만 작동하지 않았습니다.

//.Net throws an error and says that ClientId is not a property of the radio group. 
$('#<%= Crime.ClientId %>').bind('change', function() { 

    var checked = $(this).find('input:radio:checked'); 
    if (checked.length == 0) { 
       alert("NO"); 
      } 
    else { 
       alert("YES"); 
      } 

    var myRadio = $(this); 

          var checkedValue = myRadio.filter(':checked').val(); 

          var show = myRadio.val() == "Yes"; 

          var showOrHide = (myRadio.val() == 1) ? true : false; 

          alert(show + " " + showOrHide + " " + checkedValue); 
          $('#<%= CrimeDescription.ClientID %>').toggle(showOrHide); 

     }); 

나는 또한 ASPX 컨트롤에 클래스를 적용하고 이에 대한 변화 시도했다 : :

$('.CrimeToggle').click(function() { 
         //maybe traverse down to find the selected??? 
        }); 

닷넷 ASPX

을 여기

내가 시도 여러 JQ 방법입니다

<asp:RadioButtonList RepeatDirection="Horizontal" CssClass="CrimeToggle" ID="Crime" runat="server"> 
      <asp:ListItem Value="Yes">Yes</asp:ListItem> 
      <asp:ListItem Value="No">No</asp:ListItem> 
</asp:RadioButtonList> 

<textarea runat="server" id="CrimeDescription"></textarea> 

선택한 라디오 버튼을 선택하고 해당 값을 가져와야합니다.

백엔드가 컨트롤에 다른 일을하기 때문에 RadioButtonList 컨트롤과 입력을 사용해야합니다. 여기

닷넷 생성되는 출력 HTML입니다 : 당신이 질문을 우리에게 주신 한 텍스트를 바탕으로

<table id="ctl00_BodyHolder_Crime" class="CrimeToggle" border="0"> 
<tbody> 
<tr> 
<td> 
<input id="ctl00_BodyHolder_Crime_0" type="radio" value="Yes" name="ctl00$BodyHolder$Crime"> 
<label for="ctl00_BodyHolder_Crime_0">Yes</label> 
</td> 
<td> 
<input id="ctl00_BodyHolder_Crime_1" type="radio" value="No" name="ctl00$BodyHolder$Crime"> 
<label for="ctl00_BodyHolder_Crime_1">No</label> 
</td> 
</tr> 
</tbody> 
</table> 
+0

이런 종류의 것을 디버그하려면 방화범이 끌려야합니다 ... – McGarnagle

답변

0

누구나 동일한 문제가있는 경우 이것이 결국 해결되었습니다.

$('#<%= Crime.ClientID %>').click(function() { 

      var showHide = $('.CrimeToggle').find('input:radio:checked').val() == "Yes"; 

      $('#<%= CrimeDescription.ClientID %>').toggle(showHide); 

}); 

무엇 때문에 나는 원래 다시 일하기 시작했습니다. Visual Studio는 때로는 버그가 많을 수 있습니다. 이상한.

0

을,이 조언이 직접 질문에 대답보다 더 도움이 될 것입니다 생각합니다.

JQuery를 사용하여 물건을 찾으면 HTML을 통해 검색합니다. HTML이 아니지만 .NET ASPX 콘텐츠를 게시했습니다. 때때로 ASP.NET은 사용자가 예상하지 않는 일을합니다.

그래서 실제로 작동하는 것에 대해 JQuery를 추측하고 실제 HTML 출력을보고 웹 브라우저에서 콘솔을 사용합니다 (여러 브라우저에서 허용). 실제 HTML을 보면서, 콘솔을 사용하여 필요한 것을 끌어 올 JQuery 표현식을 작성하십시오.

그럼 응원 해주세요!

+0

안녕하세요, 일반적으로 서버 태그를 사용하여 요소의 ID를 타겟팅 할 수 있습니다. 라디오 그룹의 인스턴스에는 라디오 버튼에 대한 ID가 없습니다. 나는 내 Q를 html로 업데이트했다. 그럼, 클래스에서 .CrimeToggle을 사용하여 선택한 라디오의 값을 찾으려면 테이블에서 아래로 가로 지르는 방법을 말해 줄 수 있습니까? 나는 이것을 시도했다 : $ ('. CrimeToggle'). 아이들 ('입력 : 라디오 : 체크'). – User970008

+1

이것은 갑자기 작동하는 것으로 보입니다 : $ ('. CrimeToggle'). find ('input : radio : checked'). – User970008

관련 문제