首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asp:RadioButtonList asp:RequiredFieldValidator从不触发验证

asp:RadioButtonList asp:RequiredFieldValidator从不触发验证
EN

Stack Overflow用户
提问于 2017-03-17 01:36:02
回答 1查看 567关注 0票数 0

我有一个webforms页面(不要问),我正在尝试使用标准的验证器进行一些客户端验证。

下面是一些部分代码

代码语言:javascript
复制
<asp:TemplateField ItemStyle-Width="50px" HeaderText="Received">
        <HeaderStyle  HorizontalAlign="Center" />
               <ItemTemplate>
                    <asp:RadioButtonList ID="rbIsRecv"  RepeatDirection="Horizontal" 
                      runat="server" ValidationGroup="Curriculum">
                       <asp:ListItem Value="1">Yes&nbsp;</asp:ListItem>
                        <asp:ListItem Value="0">No</asp:ListItem>
                     </asp:RadioButtonList>
                    <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" 
                   ControlToValidate="rbIsRecv" Text="Required" 
                    ValidationGroup="Curriculum" />
          </ItemTemplate>
            </asp:TemplateField>      

<.......>

代码语言:javascript
复制
<asp:TemplateField ItemStyle-Width="50px" HeaderText="Actually Received">
                                <HeaderStyle  HorizontalAlign="Center" />
                                <ItemTemplate>
                                    <asp:TextBox ID="txtActual" runat="server" />  
                                    <asp:RequiredFieldValidator ForeColor="Red" ValidationGroup="AllValidators" runat="server" 
                                        ControlToValidate="txtActual" ErrorMessage="All values must be filled in!" />                                 
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                    </div>
                </div>          
            </div>
             <div class="row pull-right">
                <asp:Label runat="server">Employee ID: </asp:Label> 
                <asp:TextBox ID="txtName" runat="server" /><br />
                <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" CssClass="btn-primary pull-right" />
            </div>  
            <div class="row">
                <asp:RequiredFieldValidator ForeColor="Red" ValidationGroup="AllValidators" runat="server" ControlToValidate="txtName" ErrorMessage="Please enter your employee Number!" />     
                <asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="AllValidators"/>
            </div>

因此,当我将它从txtName控件正确地提交给摘要控件时,它会抛出错误,但网格中的控件都不会...

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-17 02:42:05

您不能使用RequiredFieldValidator验证RadioButtonList。为此,您需要一个CustomValidator

代码语言:javascript
复制
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Select an option"
    ClientValidationFunction="validateRadioButtonList"></asp:CustomValidator>

<script type="text/javascript">
    function validateRadioButtonList(oSrc, args) {
        if ($("input[name='<%= RadioButtonList1.UniqueID %>']:checked").val() == null) {
            args.IsValid = false;
        } else {
            args.IsValid = true;
        }
    }
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42841106

复制
相关文章

相似问题

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