首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RadioButtonList CustomValidator

RadioButtonList CustomValidator
EN

Stack Overflow用户
提问于 2012-03-02 13:01:39
回答 2查看 2.5K关注 0票数 0

谁能帮我验证这个单选按钮列表在asp.net即时通讯使用自定义验证器与客户端脚本。因为某些原因,我不能让它工作

代码语言:javascript
复制
<asp:RadioButtonList ID="radioGender" runat="server"
                            RepeatDirection="Horizontal">
                            <asp:ListItem Value="Male" Text="Male" />
                            <asp:ListItem Value="Female" Text="Female" />
                        </asp:RadioButtonList>
                        <asp:CustomValidator ID="valGender" runat="server"
                            ValidateEmptyText="true" 
                            ClientValidationFunction="validateGender"
                            Display="Dynamic"
                            ErrorMessage="Please choose you're gender."
                            ValidationGroup="UserInfo">*</asp:CustomValidator>
                        <script language="javascript" type="text/javascript">
                            function validateGender(source, args) {
                                var radGender = document.getElementById("<%= radioGender.ClientID  %>");
                                var elements = radGender.getElementsByTagName("input");
                                var selected = false;

                                for (var i = 0; i < elements.length; i++) {
                                    if (elements[i].checked == true) {
                                        selected = true;
                                        break;
                                    }
                                }

                                if (!selected) {
                                    args.isValid = false;
                                    return args.isValid;
                                } else {
                                    args.isValid = true;
                                    return args.isvalid;
                                }
                            }
                        </script>

更新:

代码语言:javascript
复制
<table border="0" cellpadding="0" cellspacing="0">
                            <tr>
                                <td>
                                    <asp:RadioButtonList ID="radioGender" runat="server" ValidationGroup="UserInfo" Width="130px"
                                        RepeatDirection="Horizontal">
                                        <asp:ListItem Value="Male" Text="Male" />
                                        <asp:ListItem Value="Female" Text="Female" />
                                        <asp:ListItem Value="None" Text="None" Selected="True" style="display:none; width:0px" />
                                    </asp:RadioButtonList>
                                </td>
                                <td align="left">
                                    <asp:CustomValidator ID="valGender" runat="server"                                
                                        ControlToValidate="radioGender"
                                        ClientValidationFunction="validateGender"
                                        ErrorMessage="Please select you're gender." EnableClientScript="true"
                                        ValidationGroup="UserInfo" Display="Dynamic" style="margin-left:-5px">*</asp:CustomValidator>     
                                    <script language="javascript" type="text/javascript">
                                        function validateGender(source, args) {
                                            var radGender = document.getElementById("<%= radioGender.ClientID  %>");
                                            var elements = radGender.getElementsByTagName("input");
                                            var selected = false;


                                            for (var i = 0; i < elements.length; i++) {
                                                if (elements[i].checked && elements[i].value == "None") {
                                                    selected = true;
                                                    break;
                                                }
                                            }

                                            if (selected) {
                                                args.IsValid = false;
                                                return false;
                                            } else {
                                                args.IsValid = true;
                                                return true;
                                            }

                                        }
                                    </script>
                                </td>
                            </tr>
                        </table>
<asp:Button ID="btnSubmitProfile" runat="server"
    Text="Save" OnClick="btnSubmitProfile_Click" ValidationGroup="UserInfo" />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="UserInfo" />
EN

回答 2

Stack Overflow用户

发布于 2012-03-02 14:36:36

它应该是这样的:

args.IsValid = false;

&

args.IsValid = true;

将你的"i“大写为"isValid”。

票数 0
EN

Stack Overflow用户

发布于 2012-03-02 15:09:39

这对我来说很有效..

代码语言:javascript
复制
       function validateGender(source, args)
          {
        var MyRadio = document.getElementById("<%=testing.ClientID%>")
        var options = MyRadio.getElementsByTagName("input")
        var somethingChecked = false;
        var s;
        for (x = 0; x < options.length; ++x) {
            if (options[x].checked) {
                somethingChecked = true;
                s = options[x].value;

            }
        }
        if (!somethingChecked) {

            args.IsValid = false;
        }
        else {

            args.IsValid = true;
            alert(s);
        }
    }

您应该在单选按钮列表中添加RepeatLayout="Flow"属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9528227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档