2013-08-31 119 views
4

OnCheckedChanged複選框事件我有以下的,我想在一個複選框的選中或取消選中調用javascript函數:處理與Java語言

<script language="javascript" type="text/javascript"> 
    function showHideDropDowns() { 
     var check = document.getElementById('<%= cbShowHideDDLs %>') 
     if (check.checked) { 
      document.getElementById('<%=ddlVendor%>').style.visibility = 'visible'; 
      document.getElementById('<%=ddlItem%>').style.visibility = 'visible'; 
      document.getElementById('<%=ddlorigin%>').style.visibility = 'visible'; 

      document.getElementById('<%=tbVendor%>').style.visibility = 'hidden'; 
      document.getElementById('<%=tbItems%>').style.visibility = 'hidden'; 
      document.getElementById('<%=tbOrigin%>').style.visibility = 'hidden'; 

     } 
     else { 
      document.getElementById('<%=ddlVendor%>').style.visibility = 'hidden'; 
      document.getElementById('<%=ddlItem%>').style.visibility = 'hidden'; 
      document.getElementById('<%=ddlorigin%>').style.visibility = 'hidden'; 

      document.getElementById('<%=tbVendor%>').style.visibility = 'visible'; 
      document.getElementById('<%=tbItems%>').style.visibility = 'visible'; 
      document.getElementById('<%=tbOrigin%>').style.visibility = 'visible'; 
     } 
    } 
    </script> 

試圖增加和屬性使用OnCheckedChanged或的OnClick沒有奏效:

如果你想獲得一個用戶控件EL

<asp:CheckBox ID="cbShowHideDDLs" ... onclick="showHideDropDowns(checkbox)" /> 

<asp:CheckBox ID="cbShowHideDDLs" runat="server" Text="Show Lists" /> 


    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
      { 
       cbShowHideDDLs.Attributes.Add("onclick", "showHideDropDowns();"); 
       //cbShowHideDDLs.Attributes.Add("OnCheckedChanged","showHideDropDowns();"); 
      } 
    } 

回答

3

試試這個在客戶端,您需要使用其ClientID。 因此,改變你的JavaScript函數:

<script language="javascript" type="text/javascript"> 
    function showHideDropDowns(checkbox) { 
     if (checkbox.checked) { 
     document.getElementById('<%=ddlVendor.ClientID %>').style.visibility = 'visible'; 
     document.getElementById('<%=ddlItem.ClientID %>').style.visibility = 'visible'; 
     document.getElementById('<%=ddlorigin.ClientID %>').style.visibility = 'visible'; 

     document.getElementById('<%=tbVendor.ClientID %>').style.visibility = 'hidden'; 
     document.getElementById('<%=tbItems.ClientID %>').style.visibility = 'hidden'; 
     document.getElementById('<%=tbOrigin.ClientID %>').style.visibility = 'hidden'; 
    } 
    else { 
     document.getElementById('<%=ddlVendor.ClientID %>').style.visibility = 'hidden'; 
     document.getElementById('<%=ddlItem.ClientID %>').style.visibility = 'hidden'; 
     document.getElementById('<%=ddlorigin.ClientID %>').style.visibility = 'hidden'; 

     document.getElementById('<%=tbVendor.ClientID %>').style.visibility = 'visible'; 
     document.getElementById('<%=tbItems.ClientID %>').style.visibility = 'visible'; 
     document.getElementById('<%=tbOrigin.ClientID %>').style.visibility = 'visible'; 
     } 
    } 
</script> 
+0

山SCHNEIDERS - 都嘗試您的建議和既不工作。不知道接下來要嘗試什麼。 – bsivel

+0

在IE瀏覽器中我得到JavaScript運行時錯誤:無法獲取未定義或空引用的屬性'檢查'。 Chrome不會引發錯誤。 – bsivel

+0

@bsivel,更新了答案。試一試。 –

0

如果你不介意使用jQuery,你可以這樣做:

<script src="Scripts/jquery-2.0.3.js"></script> <%-- Add jQuery reference --%> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("input:checkbox[name$='cbShowHideDDLs']").click(function() { 
      var defvisible = this.checked? 'hidden' : 'visible'; 
      var defhidden = this.checked ? 'visible' : 'hidden'; 

      $('#<%=ddlVendor.ClientID %>').css('visibility', defvisible); 
      $('#<%=ddlItem.ClientID %>').css('visibility', defvisible); 
      $('#<%=ddlorigin.ClientID %>').css('visibility', defvisible); 

      $('#<%=tbVendor.ClientID %>').css('visibility', defhidden); 
      $('#<%=tbItems.ClientID %>').css('visibility', defhidden); 
      $('#<%=tbOrigin.ClientID %>').css('visibility', defhidden); 

     }); 
    }); 
</script> 

而且也沒有必要任何功能結合的onclick複選框爲此。

1

試試這個

cbShowHideDDLs.Attributes.Add("onclick", "javascript:showHideDropDowns();");