繁体   English   中英

禁用按钮的JavaScript设置属性

[英]JavaScript Setting property of a disabled button

预编辑:事实证明,这与按钮的禁用无关,而是在保存后进行了一些其他操作。 我调试了页面,发现在保存的表单上进行更改后,页面失去了(document).ready部分中的javascript功能。 我已将解决方案添加为答案。


我有一个进入页面,其中有两个按钮保存和批准。 该机制类似于,您可以填写表格并保存,然后批准。 您也可以通过刷新页面或从已保存页面列表中访问已保存页面。

如果未保存表单,则批准按钮将被禁用。 保存后,我会从代码后面启用它。 批准按钮还具有一个确认按钮扩展器,该扩展器从javascript获取其确认文本。 我将其加载到(document).ready ,其代码为:

$(document).ready(function () {
        $("#ASPxSplitter1_ContentPlaceHolder1_uctActivityEntry1_tbActivity_tbHistory_btnApproveActivity_btnApprove").click(function () {

            $("#ASPxSplitter1_ContentPlaceHolder1_uctActivityEntry1_tbActivity_tbHistory_btnApproveActivity_lblMessage").text(GetConfirmTextForApprove());
        });
    });

,其中GetConfirmTextForApproval()进行一些计算并返回确认文本。

现在,我的问题是,因为当您打开表单时按钮被禁用,所以上面的代码不会在第一页加载时呈现。 这就导致了一个问题,当我开始填写表格并保存然后批准时,我没有得到任何确认文本,因为它没有运行该功能。 但是刷新页面或从另一个页面转到保存的表单页面后,我会得到正确的确认文本。

那么,我该如何解决这个问题呢? 即使在第一页加载时禁用了按钮,如何获得正确的确认文本?

注意:我必须补充一点,保存后页面的URL会更改。 查询字符串已添加。 那也可能导致问题。

您可以使用

// Disable #x
$( "#x" ).prop( "disabled", true );

// Enable #x
$( "#x" ).prop( "disabled", false );

但是在准备好文档时还没有,需要时需要启用按钮。 然后,您需要创建一个事件监听器

$("#button").click(function(){
  //Your code

  if(GetConfirmTextForApproval()){
  //You active the button and the text that you want show.
   }
});

解决了我自己的问题:

正如在问题的预编辑中所说的那样,问题是由于保存后进行更改而引起的。 我将功能更改为:

$(document).ready(function () {
    SetConfirmMessageForApproval();
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
});

function EndRequestHandler(sender, args) {
    SetConfirmMessageForApproval();
    }

function SetConfirmMessageForApproval() {
        $("#ASPxSplitter1_ContentPlaceHolder1_uctActivityEntry1_tbActivity_tbHistory_btnApproveActivity_btnApprove").click(function () {
            $("#ASPxSplitter1_ContentPlaceHolder1_uctActivityEntry1_tbActivity_tbHistory_btnApproveActivity_lblMessage").text(GetConfirmTextForApprove());
        });
    }

如果其他人需要它,这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM