我正在使用javascript onclick
方法顯示一個加載圖像onclick中的任何一項CheckBoxList
。CheckBoxList - onclick()JS函數如何檢測CheckBox外部的點擊(HTML輸入)
的CheckBoxList控制
<asp:CheckBoxList ID="ckBLBusinessUnits" onclick="loader(this.id);" runat="server" AutoPostBack="True" Visible="false" OnSelectedIndexChanged="ckBLBusinessUnits_SelectedIndexChanged"></asp:CheckBoxList>
我被迫使用JS onclick
,而不是jQuery的事件綁定,作爲對照的是UpdatePanel內。初始加載後,jQuery函數不會觸發。如果我添加一個替代.ie來使用Sys.Application.add_load(loader);
,那麼服務器端代碼將首先執行,然後執行JS函數。這對我的情況沒有幫助。
JS功能
function loader(controlID) {
if (controlID == "ckBLBusinessUnits")
{
if (($('#ckBLBusinessUnits :checkbox:checked').length) >= 5)
{
alert("Maximum 5 BUs can be selected.");
modal = document.getElementById('loadingImage');
modal.style.display = "block";
}
}
if (controlID == "selectSegment") {
modal = document.getElementById('loadingImage');
modal.style.display = "block";
}
}
現在,這裏的問題是,如果我點擊小的複選框,然後JS方法被觸發,這意味着加載圖像將顯示之外。在同一時刻,沒有回傳發生,因此圖像不能隱藏(在C#selectSegment_SelectedIndexChanged
)。
如何處理複選框外的點擊?
渲染HTML
<table id="ckBLBusinessUnits" onclick="loader(this.id);">
<tbody><tr>
<td><input id="ckBLBusinessUnits_0" type="checkbox" name="ckBLBusinessUnits$0" checked="checked" onclick="javascript:setTimeout('__doPostBack(\'ckBLBusinessUnits$0\',\'\')', 0)" value="BU 1"><label for="ckBLBusinessUnits_0">BU 1</label></td>
</tr><tr>
<td><input id="ckBLBusinessUnits_1" type="checkbox" name="ckBLBusinessUnits$1" onclick="javascript:setTimeout('__doPostBack(\'ckBLBusinessUnits$1\',\'\')', 0)" value="BU 2"><label for="ckBLBusinessUnits_1">BU 2</label></td>
</tr><tr>
<td><input id="ckBLBusinessUnits_2" type="checkbox" name="ckBLBusinessUnits$2" onclick="javascript:setTimeout('__doPostBack(\'ckBLBusinessUnits$2\',\'\')', 0)" value="BU 3"><label for="ckBLBusinessUnits_2">BU 3</label></td>
</tr><tr>
<td><input id="ckBLBusinessUnits_3" type="checkbox" name="ckBLBusinessUnits$3" onclick="javascript:setTimeout('__doPostBack(\'ckBLBusinessUnits$3\',\'\')', 0)" value="BU 4"><label for="ckBLBusinessUnits_3">BU 4</label></td>
</tr>
</tbody></table>
要麼取消綁定你的jQuery點擊事件或重寫它。請發佈您複選框的呈現HTML。 –
看到我的答案。您正在設置onclick整個表。 –