这段代码有什么问题?如果用户选择或不选中复选框,为什么它仍会提供MsgBox?

时间:2011-01-27 15:04:56

标签: javascript asp.net vb.net visual-studio-2008

修改此代码的位置

无论我是否选中复选框,它仍会提供msgbox ....

我的代码会在以下两种情况下重定向到Google:如果用户选中该复选框,则会重定向到www.google.com,但如果用户忘记选中该复选框,则会显示带有<的消息框em>确定按钮。当我点击确定时,它应该重定向到www.google.com。

我想要

当用户忘记检查任何复选框时,它应显示带有确定按钮的消息框并保持在同一页面上。否则,如果用户选择任何复选框,则重定向到www.google.com。

此代码出了什么问题?

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
    </head>

    <body>
        <form id="form1" runat="server">
            <div>
                <asp:CheckBox ID="CheckBox1" runat="server" />
                <asp:CheckBox ID="CheckBox2" runat="server" />
            </div>
            <asp:Button ID="Button1" runat="server" OnClientClick ="ConfirmSelection(this.form)" Text="Button" />
        </form>
        <script type="text/javascript">
            function ConfirmSelection(frm)
            {
                for (i=0; i<=1; i++) {
                    //chkSubjectOfInterest is the id of your checkbox control

                    if (frm.elements[i].name.indexOf('chkSubjectOfInterest') !=-1)
                    {
                        if (frm.elements[i].checked)
                        {
                            return true
                        }
                    }
                }
                alert('You haven\'t selected an item yet!')
                return false
            }
        </script>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

您可以使用此JavaScript函数:

<html>
<head>
<script type="text/javascript" language="javascript">
function checkboxChecked(){
    var checked=false;
    var allInputs = document.getElementsByTagName("input");
    for(var i=0; i<allInputs.length; i++){
         var chk=allInputs[i];
         if(chk.type == "checkbox"){
            if(chk.checked){
               checked=true;
               break;
            }
         } 
    }
    if(!checked)
        alert("You should check something!!");
    return checked;
}
</script>
</head>
<body>
<input type="checkbox" /><input type="checkbox" /><input type="checkbox" /><input type="checkbox" />
<br />
<asp:Button ID="Button1" runat="server" OnClientClick ="javascript:return checkboxChecked();" Text="Button" />
</body>
</html>

这也适用于ASP.NET复选框。