2011-07-26 3 views
0

이 콤보 상자의 확인란에 Javascript "모두 선택"방법을 쓰려고합니다.obout checkboxlist 모든 항목을 선택하십시오 (끔찍한 생성 된 html로)

obout 타사 제어 콤보 박스를 사용하고 있습니다. 이 contorl에 의해 생성 된 HTML은 아래와 같습니다.

이것은 '모두 선택'동작을 용이하게하기 위해 사용하려는 방법이지만 작동하지 않습니다.

이 파일은
  • 방법 명중하는 JQuery와 함수의 첫 번째 줄에 중단 점으로 페이지가로드되는
    • 때 발사되지 않습니다 방화범을 사용하여

      , 나는 다음과 같은 알 수 있습니까 확인란이 방법에 중단 점 을만큼 나는 또한 N과 함께 JQuery와 방법에 클래스 계층 구조의 서로 다른 조합을 시도했습니다

    치지, 클릭 '모두 선택' o 성공. 좀 도와 줄 수있어?

    미리 감사드립니다.

    $(function() { 
        $(".item :checkbox").eq(0).click(function() { 
         var toggle = this.checked; 
         $(".item :checkbox").attr("checked", toggle); 
        }); 
    }); 
    

    그리고 HTML

    는 컨트롤에 의해 생성되는 :

    <div id="cphMain_CentralChecks_ob_CboCentralChecksMainContainer" class="ob_iCboITCN" style="width:300px;"><div><div class="ob_iCboTL"></div><div class="ob_iCboTR"></div><div class="ob_iCboTC"><div><input name="ctl00$cphMain$CentralChecks$ob_CboCentralChecksTB" type="text" value="Alberta Central" readonly="readonly" id="cphMain_CentralChecks_ob_CboCentralChecksTB" class="ob_iCboIE" autocomplete="off" /></div><input name="ctl00$cphMain$CentralChecks$ob_CboCentralChecksSIS" type="hidden" id="cphMain_CentralChecks_ob_CboCentralChecksSIS" value="1" /></div></div><div id="cphMain_CentralChecks_ob_CboCentralChecksItemsContainer" class="ob_iCboIC" style="width:300px;display:none;"><div class="ob_iCboICH"><div class="ob_iCboICHCL"></div><div class="ob_iCboICHCM"></div><div class="ob_iCboICHCR"></div></div><div class="ob_iCboICB"><div class="ob_iCboICBL"><div class="ob_iCboICBLI"></div></div><ul class="ob_iCboICBC" style="min-height:;"><li><span>Select All</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCOboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl24$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl24$OboutCheckBox1" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label"> 
           Select All 
          </div> 
         </div> 
        </b><i>0</i></li><li><span>Alberta</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCcphMain_CentralChecks_ctl30_OboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl30$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl30$OboutCheckBox1" checked="checked" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label">Alberta</div> 
         </div> 
        </b><i>1</i></li><li><span>Central 1</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCcphMain_CentralChecks_ctl36_OboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl36$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl36$OboutCheckBox1" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label">Central 1</div> 
         </div> 
        </b><i>2</i></li><li><span>SaskCentral</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCcphMain_CentralChecks_ctl42_OboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl42$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl42$OboutCheckBox1" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label">SaskCentral</div> 
         </div> 
        </b><i>3</i></li><li><span>Manitoba</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCcphMain_CentralChecks_ctl48_OboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl48$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl48$OboutCheckBox1" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label">Manitoba</div> 
    
         </div> 
        </b><i>4</i></li><li><span>New Brunswick</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCcphMain_CentralChecks_ctl54_OboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl54$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl54$OboutCheckBox1" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label">New Brunswick</div> 
         </div> 
        </b><i>6</i></li><li><span>Nova Scotia</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCcphMain_CentralChecks_ctl60_OboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl60$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl60$OboutCheckBox1" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label">Nova Scotia</div> 
         </div> 
        </b><i>7</i></li><li><span>Prince Edward Island</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCcphMain_CentralChecks_ctl66_OboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl66$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl66$OboutCheckBox1" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label">Prince Edward Island</div> 
         </div> 
        </b><i>8</i></li><li><span>Newfoundland and Labrador</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCcphMain_CentralChecks_ctl72_OboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl72$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl72$OboutCheckBox1" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label">Newfoundland and Labrador</div> 
         </div> 
        </b><i>9</i></li><li><span>l'Ontario</span><b> 
         <div class="item"> 
          <span> 
           <div id="ob_iCcphMain_CentralChecks_ctl78_OboutCheckBox1Container" class="ob_iCCUN"><div class="ob_iCChk"></div><div class="ob_iCTxt"></div><span class="ob_iCChkEl"><input id="ctl00$cphMain$CentralChecks$ctl78$OboutCheckBox1" type="checkbox" name="ctl00$cphMain$CentralChecks$ctl78$OboutCheckBox1" /></span><input type="hidden" name="OboutCheckBox1StateCont" id="OboutCheckBox1StateCont" value="0" /><div class="ob_iCallbackScript" style="display:none;"></div></div> 
          </span> 
          <div class="label">l'Ontario</div> 
         </div> 
        </b><i>10</i></li> 
        </ul><div class="ob_iCboICBR"><div class="ob_iCboICBRI"></div></div></div><div class="ob_iCboICF"><div class="ob_iCboICFCL"></div><div class="ob_iCboICFCM"></div><div class="ob_iCboICFCR"></div></div></div><input name="ctl00$cphMain$CentralChecks$ctl00$cphMain$CentralChecks" type="hidden" id="cphMain_CentralChecks_ctl00$cphMain$CentralChecks" value="1" /><div class="ob_iCallbackScript" style="display:none;"></div> 
    </div> 
    
  • +0

    JS를 통해 서버 또는 클라이언트에서 만든 HTML을 확인하십시오. – Tomalak

    +0

    나는 그것이 서버 측이라고 생각하지만, 이제 나는 그것을 두 번째로 추측하고있다. 어떻게 확인할 수 있습니까? – splatto

    +0

    글쎄, 그것이 웹 페이지의 소스 코드에 있다면, 그것은 서버 측 (이것은 나의 의심이다)을 만들었다. – Tomalak

    답변

    0

    이것은 샘플과 나를 위해 작동이

    $(function() { 
        $(document.body).delegate(".ob_iCboITCN input:checkbox:first", "click", function() { 
         var toggle = this.checked; 
         $(this).closest(".ob_iCboITCN").find("input:checkbox").each(function(){ 
    
          $(this).attr("checked", toggle); 
         }) 
        }); 
    }); 
    
    +0

    불행히도이 작업을 수행하지 않습니다 – splatto

    +0

    수정 된 답변을 시도해보십시오. – ShankarSangoli

    +0

    아직도 주사위가 없습니다. 불행히도. Firebug 사용 페이지로드시 중단 점을 볼 수는 있지만 '모두 선택'항목을 선택하면 이벤트가 실행되지 않습니다 – splatto

    1

    을보십시오.

    $(function() { 
        $(".ob_iCboITCN input:checkbox:first").click(function() { 
         $(this).closest(".ob_iCboITCN") 
         .find("input:checkbox").attr("checked", this.checked); 
        }); 
    }); 
    

    은 코드 산세 온통 뿌려 된 display:nonethis jsFidlde를 참조하십시오.

    사실,이 변형은 @ShankarSangoli's code입니다. 이는 나에게도 똑같이 적용됩니다.

    +0

    필자는 jiddy Fiddle에서 작업하는 것을 보았습니다. 그러나 Visual Studio에서 작동시킬 수없는 이유가 있습니다. 함수의 내 중단 점은 pageload에서 실행되지만 아이템을 클릭하면 실행되지 않습니다. obout 친구들은 외부 버튼이있는 작동 예제가 있지만 콤보 상자 자체의 항목은 아닙니다. 콤보 박스 내부에서 컨트롤 할 수 없다는 가능성이 있습니까? 다음은 온라인 예제입니다. http://www.obout.com/combobox/integration/aspnet_integration_select_oboutcheckboxes.aspx – splatto

    +0

    @splatto : 문제는 확인란을 클릭 할 때 발생하는 다른 JavaScript 코드가 간섭한다는 것입니다. 이벤트 전파를 취소하므로 jQuery 함수는'click' 이벤트를 보지 못합니다. – Tomalak

    +0

    ... 그러나 원하는대로 정확하게 수행하는'selectAllItems()'와'deselectAllItems()'도 제공합니다. 어쩌면 당신은 jQuery로 방법을 찾으려고 노력하는 대신 이러한 함수에 집중해야할까요? – Tomalak

    관련 문제