【问题标题】:Button gets disabled when clicked second time第二次单击时按钮被禁用
【发布时间】:2023-04-09 04:52:01
【问题描述】:

我的页面上有以下按钮

<asp:Button ID="btnSignoff" runat="server" Text="Sign Off & Send" CssClass="btn btn-primary" OnClientClick="openSignOffModal(); return false;"/>

第一次点击按钮工作正常(显示模式弹出窗口)。当我再次按下按钮关闭弹出窗口后,现在它被禁用了。

这是默认行为吗?知道为什么它会这样吗?我该如何解决?

function openSignOffModal() {

           //check if atleast one RCTI is selected
           if (ValidateCheckBox())
               $('#SignOffRCTIModal').modal();
           else
               $('#NoRCTISelectedModal').modal();

       }

标记

<div class="modal hide" id="SignOffRCTIModal" style="width: 500px">
    <div class="modal-header">
        <h3>Sign Off RCTI</h3>
    </div>
    <div class="modal-body form-horizontal">            
        <asp:Panel ID="pnlSignOffRCTI" runat="server">
            <p>
                Are you sure you want to Signoff the selected RCTI(s)? 
            </p>
        </asp:Panel>
    </div>
    <div class="modal-footer">
        <asp:Button ID="btnConfirmSignOff" runat="server" CssClass="btn" Text="Sign Off and Send" CausesValidation="false" />
        <button class="btn btn-primary" data-dismiss="modal" data-focus="true" id="btnCancel">Cancel</button>
    </div>
</div>
<div class="modal hide" id="NoRCTISelectedModal" style="width: 500px">
    <div class="modal-header">
        <h3>No RCTI Selected</h3>
    </div>
    <div class="modal-body form-horizontal">            
        <asp:Panel ID="Panel2" runat="server">
            <p>
                Please select an RCTI first in order to proceed.
            </p>
        </asp:Panel>
    </div>
    <div class="modal-footer">
        <button class="btn btn-primary" data-dismiss="modal" data-focus="true">OK</button>
    </div>
</div>

附:我的页面上有 ajax 控件,但单击此按钮不会更新任何内容,因此我没有对其进行 ajax 化。

【问题讨论】:

  • 分享openSignOffModal()的Javascript代码
  • 如果不查看相关的服务器端/客户端代码,我们不可能回答这个问题。请edit 提出问题并附上minimal reproducible example 来演示问题。
  • shared..如果您需要更多代码,请告诉我

标签: javascript asp.net-controls


【解决方案1】:

耶耶!有用!所以在 .master 我定义了这样的属性

$("input[type='submit']").click(function (e) {
            if (e.target && Page_IsValid) {
                var SkipDoubleClickCheck = 
$(this).attr('SkipDoubleClickCheck');
                if (SkipDoubleClickCheck != 'undefined' && SkipDoubleClickCheck == "true") {  //Skip if element has a specific attribute
                    return;
                }
                var attr = $(this).attr('submitting');
                if (typeof attr !== 'undefined' && attr !== false) { // If button has submitting attribute, then do not submit it again.
                    $(this).prop('disabled', true);
                    $(this).removeAttr("submitting");
                    e.preventDefault();
                }
                else {
                    $(this).attr("submitting", "true"); // Adding "submitting" attribute to prevent multiple submissions.
                }
            }
        });

实现这个需要在按钮SkipDoubleClickCheck="true"中设置的属性

<asp:Button ID="btnSignoff" runat="server" text="Sign Off & Send" SkipDoubleClickCheck="true" CssClass="btn btn-primary" OnClientClick="openSignOffModal(); return false;"/></td>

【讨论】:

    猜你喜欢
    • 2019-07-22
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多