如题:
    页面中有n个checkbox,下面有个button,均为服务器控件,不想刷新页面,想用js来判断是否选中。
    
    我的想法是:js中判断是否选中,然后button事件中根据js中的值来选择是否往下执行代码。请教解决方案。

解决方案 »

  1.   

    把Checkbox的autopostback设置成false. 点击Checkbox就不会刷新了。不需要js.可以在button的处理函数中取得checkbox的状态。
      

  2.   

    嗯,谢谢秋心的回答。可是,点击按钮总是会刷新的。我想要的效果是:在Checkbox一个都没有选中的情况下,提示“没有选中”,如果选中了,则什么也不提示,直接往下执行button事件中的代码。
      

  3.   

    <head>
    <script language="javascript" type="text/javascript">
        function cc()
        {
            var chk = document.getElementById("Checkbox1");
            if(chk.checked == false)
            {
                //alert("aaa");
                var spantxt = document.getElementById("idaa");
                spantxt.style.color = "Silver";
                
            }
        }
        </script>
    </head><body>
    <div>
            <input id="Button1" type="button" value="button" onclick="cc();" />
            <input id="Checkbox1" type="checkbox" /><span id="idaa">chekaaaaaa</span>
        </div>
    </body>示例
    只供参考checkbox未选择 点击buton 字体颜色变灰
    反之则无变化
      

  4.   

     If Not IsPostBack Then
    '在你的load里面写上这个  只有第一次启动的时候才运行
    '另外 checkbox 时候被选中是有返回值的  checkbox.checked =true/false 用值来判断是否打开
                       End If
      

  5.   


    js的方法在button的 OnClientClick 事件中调用如果一个都没有选中 给出提示 并return false 这样就不会刷新页面了 
      

  6.   

    if(document.getElementById("Checkbox1").checked) 
    {
    alert('选中了!');
    }
      

  7.   

    换成服务器端的,一样
    这里加一句:
    private void Page_Load(object sender, System.EventArgs e)
    {

    Button1.Attributes.Add("onclick","return cc()");
    }应该就可以了
    以上是vs2003上的
      

  8.   


            var objNode = event.srcElement;
            var chkAll = document.getElementById("<%=chkAll.ClientID %>");
            if(objNode.tagName!="INPUT" || objNode.type!="checkbox" || chkAll.checked == false) 
    这样就可以判断到那个checkbox是否已经选择
    如果你要根据这个值决定是否执行后台的click事件的话,可以给button设置 OnClientClick事件等于js函数,而js函数 return 这个checkbox的checked值
      

  9.   

    前台:<%@ Page language="c#" Codebehind="WebForm3.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1Test.WebForm3" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm3</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    <script language="javascript" type="text/javascript">
    function cc()
    {
    var chk = document.getElementById("Checkbox1");
    if(chk.checked == true)
    {
    return true;
    }
    else return false;
    }
    </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <asp:CheckBox id="CheckBox1" style="Z-INDEX: 101; LEFT: 32px; POSITION: absolute; TOP: 24px" runat="server"></asp:CheckBox>
    <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 40px; POSITION: absolute; TOP: 64px" runat="server"
    Text="Button"></asp:Button>
    <asp:Label id="Label1" style="Z-INDEX: 103; LEFT: 208px; POSITION: absolute; TOP: 32px" runat="server">show result</asp:Label>
    <asp:Label id="Label2" style="Z-INDEX: 104; LEFT: 288px; POSITION: absolute; TOP: 32px" runat="server"></asp:Label>
    </form>
    </body>
    </HTML>后台:private void Page_Load(object sender, System.EventArgs e)
    {
    Button1.Attributes.Add("onclick","return cc();");
    }private void Button1_Click(object sender, System.EventArgs e)
    {
    Label2.Text = "i am do";
    }
    应该是这样吧
    以上vs2003通过