2011-12-16 4 views
0

У меня есть <asp:CheckBox>, и мне нужно применить к нему вызов JavaScript. Функция JavaScript должна установить видимость <asp:Panel> как истинного, если отмечен флаг CheckBox. Видимость панели должна быть неверной, если CheckBox не проверен.Как я могу переключить видимость панели с помощью CheckBox?

Мне не удалось добраться до функции JavaScript, используя <asp:CheckBox> с нормальной работой input:type = checkbox. Но мне нужно, чтобы это было <asp:CheckBox>!

+0

будет jquery работать для вас вместо javascript? – Bibhu

+0

Является ли «панель» и asp: панель или просто и стандартным div? Кроме того, вы используете jQuery или просто javascript? – DavidGouge

+0

jquerry будет работать нормально! панель asp: Panel! – Ghassan

ответ

4

Если я вас правильно понял, я бы лично использовать JQuery, то вы можете сделать что-то вроде этого

$("#yourCheckBoxId").change(function(){ 
     if($(this).attr('checked')){ 
      $(".yourDivClass").show(); 
     } 
    }); 
+0

Пример скрипта здесь http://jsfiddle.net/vQnVT/ надеюсь, что это поможет –

1

Предполагая, что ваш CheckBox имеет атрибут runat="server", что вам нужно сделать что-то вроде:

$("<%= MyCheckBox.ClientID %>").change(function() { 
    $("<%= MyPanel.ClientID %>").toggle(); 
}); 

Вышеупомянутый код предполагает, что ваши CheckBox и Panel всегда будут иметь такое же состояние. То есть, checkedCheckBox равно видимому Panel. Если вам нужно изменить этот код (изменить условие, при которых Panel видны, и т.д.), и вы хотите сослаться на текущее checked состоянии вашего CheckBox, просто сделать это внутри change() функции:

var checked = $(this).prop("checked"); 

Примечание: Для будущей совместимости важно использовать функцию prop() вместо attr(). Разница здесь тонкая, но attr() вернет состояние CheckBox, когда оно было впервые загружено на страницу. prop() вернет текущее состояние CheckBox.

+0

, что интересно использовать prop(). У вас есть ссылка на более подробную информацию? спасибо – Russell

+0

@ Russell Заметки в разделе '' .prop() '] (http://api.jquery.com/prop/) на веб-сайте jQuery упоминают об этом изменении. – jwiscarson

0
function toggle_panel(chkbox) 
{ 
    var panel=document.getElementById('<%=panle1.ClientID %>'); 
    chkbox.checked ? panel.style.display='inline':panel.style.display='none'; 
} 

Просто сделать вызов к яваскрипту функции симметричного доступа к управлению asp.net с Javascript он должен быть спрятан с помощью атрибута стиля, потому что Javascript будет возвращать неопределенным, если Visible = «ложь» используются.

<asp:CheckBox ID="chkboxPanel" runat="server" onclick="toggle_panel(this);" Text="Show" /> 
    <br /> 
    <br /> 
    <asp:Panel ID="panle1" runat="server" Style="display: none"> 
     Iam Text Inside the Panel 
    </asp:Panel> 
Смежные вопросы