asp.net c#.net jquery / javascript 如何使用复选框启用或禁用 requiredfieldvalidator

Posted

技术标签:

【中文标题】asp.net c#.net jquery / javascript 如何使用复选框启用或禁用 requiredfieldvalidator【英文标题】:asp.net c#.net jquery / javascript how to enable or disable a requiredfieldvalidator using a checkbox 【发布时间】:2015-11-12 20:54:54 【问题描述】:

我在尝试使用复选框启用或禁用 requiredfieldvalidator 时遇到问题。显然,当复选框被选中时,我希望它被启用并且未选中被禁用。当复选框被选中时,它还会打开一个 FileUpload,所以很明显,如果没有选择文件,我希望它注册。这是我的一些代码。

html

            <tr>
                <td>
                    <asp:CheckBox ID="chkExecLAF" Text="Executed LAF" runat="server" OnCheckedChanged="chkExecLAF_CheckedChanged" />
                </td>
                <td id="tblExecLAF">
                    <asp:FileUpload ID="FileUpload1" runat="server" CssClass="FileUpload1" />
                    <asp:RequiredFieldValidator ID="rfvExecLAF" ControlToValidate="FileUpload1" ErrorMessage="*Required" ForeColor="Red" runat="server" />
                </td>
                <td>
                    <asp:CheckBox ID="chkDatedLeaseAbstract" Text="Dated Lease Abstract" runat="server" />
                </td>
                <td>
                    <asp:FileUpload ID="FileUpload2" runat="server" CssClass="FileUpload2" />
                </td>
            </tr>

代码背后:

    protected void chkExecLAF_CheckedChanged(object sender, EventArgs e)
    
        if (FileUpload1.HasFile)
        
            rfvExecLAF.Enabled = false;
        
        else
        
            rfvExecLAF.Enabled = true;
        
    

jquery:

 <script type="text/javascript">
    $(function () 
        $('.FileUpload1').attr('disabled', true);
        $('.rfvExecLAF').attr('disabled', true);
        $('.rfvExecLAF').hide();
        $('.FileUpload1').hide();
        $('#<%=chkExecLAF.ClientID %>').click(function () 

            if ($(this).is(':checked')) 
                $('.FileUpload1').removeAttr('disabled');
                $('.rfvExecLAF').removeAttr('disabled');
                $('.rfvExecLAF').show();
                $('.FileUpload1').show();
             else 
                $('.FileUpload1').attr('disabled', true);
                $('.rfvExecLAF').attr('disabled', true);
                $('.rfvExecLAF').hide();
                $('.FileUpload1').hide();
            
        );
    );
</script>

【问题讨论】:

【参考方案1】:

您是否尝试在代码隐藏中添加断点并查看 CheckedChanged 是否命中了该断点?

如果没有命中,那么您可能需要将AutoPostBack = 'true' 添加到您的chkExecLAF

【讨论】:

好的,所以我明白了,但由于某种原因它正在破坏我的 jquery,所以现在我回到了第一方。我想做的只是使用jquery,但由于某种原因它根本不起作用。任何想法为什么我的 jquery 脚本在未选中复选框时没有隐藏或禁用必填字段验证器?

以上是关于asp.net c#.net jquery / javascript 如何使用复选框启用或禁用 requiredfieldvalidator的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net MVC 中的 JQuery UI 日期选择器

如何使用 jquery 或 ajax 在 c#/asp.net 中为 MVC 项目更新 razor 部分视图

利用JQuery直接调用asp.net后台方法

ASP.Net C#MCV - 将值从Ajax Jquery传递给Controller

c# asp.net jQuery AJAX 从 MySQL 获取数据

将数据传递到处理程序的 Jquery ajax 不起作用(Asp.net、C#、Jquery)