2011-04-20 5 views
5

다음 ASP.NET 서버 컨트롤 확인란이 있습니다.jQuery로 ASP.NET 체크 박스를 선택하십시오.

<asp:checkbox id="chkMonS1" runat="server" /> 
<asp:checkbox id="chkMonS2" runat="server" /> 
<asp:checkbox id="chkAllMon" runat="server" /> 

및 기타 확인란.

<asp:checkbox id="chkTueS1" runat="server" /> 
<asp:checkbox id="chkTueS2" runat="server" /> 
<asp:checkbox id="chkAllTue" runat="server" /> 

그래서 나는 그러나, 그것은 작동하지 않습니다 .. 그래서 같이 모든 확인란을 선택 jQuery를 사용하는

<script type="text/javascript"> 
     $('chkAllMon').click(
     function() { 
      $('chkMonS1').attr('checked', true) 
      $('chkMonS2').attr('checked', true) 
     } 
     ) 
    </script> 

을 시도했다. 어디서 잘못 되었습니까?

답변

8

ASP.NET 4.0 이상을 사용하는 경우이 문제를 쉽게 해결할 수 있습니다.

먼저 $('#chkMonS1')과 같이 jQuery 선택기에 # 심볼이 필요합니다.

또한 아래와 같이 ASP.NET 요소에 ClientIdMode="Static"을 설정해야합니다. 그러면 HTML id이 ASP.NET id과 동일한 값으로 설정됩니다. 이유는 this article을 참조하십시오.

<asp:checkbox id="chkAllTue" runat="server" ClientIDMode="Static" />

0

당신은 ID로 선택하는 해시를 필요 : 클라이언트에서 서버 측 ID를 사용하려는

$('#chkAllMon').click(function() { 
    $('#chkMonS1').attr('checked', true) 
    $('#chkMonS2').attr('checked', true) 
}); 
+0

ASP.NET에서 여전히 작동하지 않는 이름 지정 규칙 (이름 지정 규칙으로 인해) –

9

. 은 다음과 비슷한 모습이 될 것입니다

$('#<%=chkAllMon.ClientID %>').click(
     function() { 
      $('#<%=chkMonS1.ClientID %>').attr('checked', true) 
      $('#<%=chkMonS2.ClientID %>').attr('checked', true) 
     } 

설명 : ASP.NET ID가 서버에 표시되는 ID입니다. ASP.NET 컨트롤이 HTML로 렌더링 될 때 다른 ID가 부여됩니다.

+0

어떻게 수정해야합니까? –

+0

안녕하세요. 내 편집을 봐라. – SquidScareMe

+0

감사합니다. 그것을 본. :) –

1

체크 박스의 ID는 jQuery를 단순히 그들을 발견되지 않도록 (모든 자리와 등) 클라이언트 측에 매우 다를 것이다. 몇 가지 솔루션은 시도 할 수 있습니다 : 스크립트가 내장되어있는 경우

$('#<%= chkMonS1.ClientId %>').attr("checked", true)

  • : 스크립트가 같은 페이지에

    1. 경우이 된 ClientID가 C#을과 같이 사용하여 포함 할 수있다 외부 파일 및 ASP.NET 4.0을 사용중인 경우 ClientIDMode를 "정적"으로 변경할 수 있으며 확인란의 정확한 ID를 사용할 수 있습니다 (자세한 내용은 http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx 참조)

    2. jquery selector를 사용하면 주어진 체크 박스를 찾을 수 있습니다 (클라이언트 ID는 항상 ASP.NET이 ASP.NET의 앞에 추가 한 ID로 끝나기 때문에; 당신이 비록 다른 명명 컨테이너에서 동일한 ID를 사용하는 경우이) 위험 할 수 :

      $('input[id$='chkMonS1']').attr("checked", true)

  • 1

    이 ASP.NET 2.0의 경우, 서버 생성 된 ID를 사용해야합니다

    <script type="text/javascript"> 
        $('#<%=chkAllMon.ClientID%>').click(
        function() { 
         $('#<%=chkMonS1.ClientID%>').attr('checked', true) 
         $('#<%=chkMonS2.ClientID%>').attr('checked', true) 
        } 
        ) 
    </script> 
    

    ASP.NET 4.0의 경우 ChessWiz's answer을 참조하십시오.

    +0

    그런 식으로 시도했지만 불행히도 여전히 작동하지 않습니다. :( –

    관련 문제