2013-08-31 71 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();");