使用Javascript验证gridview中的复选框

本文关键字:复选框 gridview Javascript 验证 使用 | 更新日期: 2023-09-27 18:09:32

可能重复:
使用Javascript 验证网格视图中的复选框

This is my aspx code...
 <asp:TemplateField HeaderText="IsExist">
            <ItemTemplate>
                <asp:CheckBox ID="chkExists" runat="server" Text="Exists" AutoPostBack="false" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Not Exists In Update">
            <ItemTemplate>
                <asp:CheckBox ID="chkExistsInUpdate" runat="server" Text="NotExists" AutoPostBack="false"/>
            </ItemTemplate>
        </asp:TemplateField>

这里我有两个复选框,但在不同的列中,即网格视图中存在列的chkExist和NotExist列的chcExistinUpdate。我想要如果他们都选中了,那么alert((mesg应该显示为"你只能选中一个复选框"。。这是我的javascript代码。。。。

 function check_one() {
            var obj = document.form1;
            var isValid = false;
            var gridView = document.getElementById('<%= Gridview1.ClientID %>');
            for (var i = 1; i < gridView.rows.length; i++) {
                var inputs = gridView.rows[i].getElementsByTagName('input');
                if (inputs == null) {
                    if (inputs[0].type == "chkExists" && inputs[0].type == "chkExistsInUpdate") {
                        if (inputs[0].checked && inputs[0].checked) {
                            isValid = true;
                        }
                    }
                    var ch1 = inputs[0].type["chkExists"];

                }
                //alert(inputs[0].type == "chkExists");
                alert(ch1);
            }
            alert("Plese select only 1 check");
            return false;
        }

因此,请建议我,javascript中需要做哪些更改。。。

使用Javascript验证gridview中的复选框

您应该使用单选按钮,并根据行设置组名称,因为每行有一个组:

<asp:TemplateField HeaderText="IsExist">
            <ItemTemplate>
                <asp:RadioButton ID="chkExists" runat="server" Text="Exists" AutoPostBack="false" GroupName='<%# Eval("Id") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Not Exists In Update">
            <ItemTemplate>
                <asp:RadioButton ID="chkExistsInUpdate" runat="server" Text="NotExists" AutoPostBack="false" GroupName='<%# Eval("Id") %>'/>
            </ItemTemplate>
        </asp:TemplateField>

但是,如果你无论如何都需要复选框(这对我来说没有意义(,你可以使用jQuery:

function check_one() {
        $('#<%= Gridview1.ClientID %> tr').each(function() {
            if(jQuery(":checkbox", this)
              .filter(function(i) { return this.checked; }).length != 1) { 
               alert("Plese select only 1 check");
            }
        });
}