2011-07-26 5 views
0

私はこのコンボボックスのチェックボックスにJavascriptの "Select All"メソッドを記述しようとしています。obout checkboxlistすべての項目を選択する(恐ろしく生成されたhtmlで)

私はoboutサードパーティコントロールのコンボボックスを使用しています。このコンロールによって生成されるHTMLは以下の通りです。

これは、「すべて選択」動作を容易にするために使用しようとしている方法ですが、これは機能しません。 Firebugのを使用して

、私は次のことを知っていますか:

  • 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

私はそれがサーバー側だと信じていますが、今私はそれを2番目に推測しています。どうすれば確認できますか? – splatto

+0

Webページのソースコード内にあれば、サーバー側が作成されています(これは私の疑いです)。 – 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:noneあるthis jsFidldeを参照してください。

実際、これは@ShankarSangoli's codeのバリエーションであり、私にとっても同様に機能します。

+0

それはjs 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

関連する問題