【问题标题】:Click Event Unbinded after Server Side Call单击服务器端调用后未绑定的事件
【发布时间】:2015-03-20 14:06:17
【问题描述】:

我在按钮的 Click 事件上遇到问题。请查看以下 Javascript 代码。

$(function () {
            
            UploadBtnDisableEvents();
            
            function UploadBtnDisableEvents() {
                var buttonUpload = $('#' + '<%= imgBtnDocUpload.ClientID %>');
                var txtfile = $('#' + '<%= filUpload.ClientID %>');
                var txtname = $('#' + '<%= txtDocName.ClientID %>');

                buttonUpload.on('click', function () {
    
                    validateControls(txtfile, txtname)) {
                        setTimeout(function () {
                            buttonUpload.prop('disabled', true);
                            buttonUpload.removeAttr('href');
                        }, 10);

                    }
                });

                var validateControls = function (file, docname) {
                    var inputname = docname.val();
                    var inputfile = file.val();
                    if (inputname == "" || inputfile == null || inputfile == "" || inputfile == null) {
                        return false;
                    }
                    else {
                        return true;
                    }
                }
            }
        });

此代码在初始页面加载时完美运行。当用户单击上传按钮时,按钮被禁用并启动服务器调用。在按钮末尾的代码后面单击按钮再次重新启用。其目的是阻止用户再次单击按钮。现在,当用户单击删除按钮时,此使用 .on 事件绑定的单击事件被解除绑定,并且当用户再次单击上传按钮时,它未被禁用。请给我你的建议。顺便说一句,删除完整页面被重新加载,这就是为什么它没有用事件重新绑定按钮。谢谢。

注意:如果您需要更多信息,请在 cmets 中提及。我们使用的控件是用于 ajax 调用目的的 anthem 控件。

【问题讨论】:

  • 顺便说一句,我忘了提到我还尝试在服务器端的 deletebutton 末尾运行脚本,但它没有用。这是代码。 ClientScript.RegisterClientScriptBlock(Me.GetType(), "Javascript", "javascript: UploadBtnDisableEvents(); ", False)
  • 也许按钮提交了?如果是,请将其更改为 buttonUpload.on('click', function (e) { e.preventDefault(); - 我假设您想将表单内容 ajax 到服务器而不重新加载页面?
  • @mplungjan 我不认为这是一个问题。这不是表单提交按钮。这是服务器端按钮。
  • 什么是“服务器端按钮”?
  • 服务器端控制。因为我在 Asp.net WebForms 中工作。

标签: javascript jquery asp.net


【解决方案1】:

经过大量的努力,我的问题得到了解决。如果发生回调,则未加载完整的 DOM,所以我所做的是我已经注册了 UploadBtnDisableEvents 函数。这是我在点击回调按钮时写的那一行。

ClientScript.RegisterStartupScript(Me.GetType(), "Javascript", "javascript: DisableControls(); ", True)

以上代码在回调完成时重新注册我的脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2015-02-15
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    相关资源
    最近更新 更多