【问题标题】:asp:Button disabled false for select on click doesn't workasp:Button disabled false for select on click 不起作用
【发布时间】:2020-10-29 11:43:30
【问题描述】:

我已经卡了一段时间了,我找不到解决这个问题的方法。

我想启用一个<select> onClick 按钮,但它不起作用:

<div class="col-lg-12">

    <div class="form-group" style="overflow-y: scroll; height: auto; max-height: 545px;">

        <asp:Repeater ID="RepeaterCorrection" runat="server">

            <ItemTemplate>

                <label>
                    <asp:Literal ID="litCorLibelle" runat="server" Text='<%# Eval("DESCRIPTION")%>'></asp:Literal>
                </label>

                <asp:DropDownList ID="ddlCorChamp" runat="server" CssClass="form-control selectpicker"
                    data-live-search="true"></asp:DropDownList>
                <asp:RequiredFieldValidator ID="rfvDropDownList" ForeColor="Red" Display="Dynamic" runat="server"
                    ErrorMessage="Don't forget that field" ControlToValidate="ddlCorChamp"
                    InitialValue="Select something" />

                <p class="help-block"></p>

                <asp:HiddenField ID="hiddenCorIdChamp" runat="server" Value='<%# Eval("IDCHAMP") %>' />
                <asp:HiddenField ID="hiddenCorNameChamp" runat="server" Value='<%# Eval("NAMECHAMP")%>' />
                <asp:HiddenField ID="hiddenCorType" runat="server" Value='<%# Eval("TYPE")%>' />
            </ItemTemplate>

        </asp:Repeater>

    </div>

    <asp:Button ID="btnValid" runat="server" Text="Let's Enable this !"
        class="btn btn-primary btn-block" CausesValidation="False" UseSubmitBehavior="False" Enabled="True" />
</div>
//IT WORKS, IT IS DISABLED
$('Select[Champ=ID_REJECT]').prop('disabled', true);

//IT DOESN'T WORK, IT IS STILL DISABLED, EVEN WHEN I CLICK
$('#<%= btnValid.ClientID %>').click(function () {
    $('Select[Champ=ID_REJECT]').prop('disabled', false);
    //$('Select[Champ=ID_REJET]').removeAttr("disabled");
    //$('Select[Champ=ID_REJECT]').attr('disabled', false);
    return false;
});

我真的不明白为什么... 你有什么想法吗?

【问题讨论】:

    标签: asp.net select onclick disable aspbutton


    【解决方案1】:

    这几个原因可能有以下几个原因:

    原因 1
    您在 jquery 事件绑定中硬编码按钮的 id,如果您的 DOM 被修改,这可能是一个问题,例如当您在 ContentPlaceHolder 中有一个按钮时。您需要做的是,像这样修改您的按钮事件接线:

    $('#<%= btnValid.ClientID %>').click(function () {
        alert("Hey");
    });
    

    原因 2
    默认情况下,服务器端按钮将始终执行postback,您可能希望通过在事件结束时添加return false; 语句来覆盖此行为。像这样:

    $('#<%= btnValid.ClientID %>').click(function () {
        alert("Hey");
        return false; // This will tell the event that we do not want to proceed further with posting the data to server.
    });
    

    如果这两种解决方案对您有帮助,请告诉我。

    更新

    由于您想启用/禁用您的jquery select 元素,我建议使用prop() 方法来实现所需。

    $('#<%= btnValid.ClientID %>').click(function () {
        $('Select[Champ=ID_REJECT]').prop("disabled", false);
        return false;
    });
    

    或者您可以从 select 元素中删除 disabled 属性,如下所示:

    $('#<%= btnValid.ClientID %>').click(function () {
        $('Select[Champ=ID_REJECT]').removeAttr("disabled"); // this will entirely remove the attribute
        return false;
    });
    

    【讨论】:

    • 您好!谢谢你的建议!事实上, alert() 现在可以工作了。所以我试图在那之后放置我的“真实”代码,但它不起作用......我想在点击时启用选择......
    • @Hashka 您可以简单地按照第二个原因并在文件末尾添加return false; 语句,这样您就不会收到回发。
    • 已经试过了……还是不行……(代码已更新)
    • @Hashka 我可以在Champ=ID_Reject 看到这个选择元素吗?
    猜你喜欢
    • 1970-01-01
    • 2017-08-05
    • 2020-04-15
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多