2

我有一个用户控件 A,它位于另一个用户控件 B 旁边的页面上。

控件 A 有它自己的功能,其中包括一些导致回发的控件(下拉菜单、复选框等)。

我控制B,我不控制A。

B 需要隐藏 A 中存在的按钮。

在 B 中,我有这样的标记和脚本:

<body onload="OnPageLoad();">
...

  function OnPageLoad() {
    $("input[name$='btnInPartA']").hide();
...

当页面加载时,这成功地隐藏了 A 中的按钮。

每当从 A 触发回发时,按钮就会重新出现。

我怎样才能隐藏那个按钮?我想在每次回发时触发我的 javascript 代码,但我对其他想法持开放态度。

这是 B 部分的标记:

<body onload="OnPageLoad();">
  <div id="divDonationExtensionFields">
    <div id="divSubmitButton">
      <input type="button" id="btnCZDonate" value="Donate Now" onclick="btnCZDonate_OnClick();" />
    </div>
  </div>
</body>

<script type="text/javascript">
  function OnPageLoad() {
    alert("OnPageLoad fired!");
    $("input[name$='btnNext']").hide();
  }

  function btnCZDonate_OnClick() {
    //do whatever part A was going to do
    $("input[name$='btnNext']").click();
    //do some custom stuff after that
  }
</script>
4

1 回答 1

2

尝试使用pageLoad特殊功能而不是订阅onload处理程序。不同之处在于,pageLoad无论是否是部分回发,都会在每次回发时调用它。似乎有一些部分回发正在重新显示您隐藏的按钮,并且onload在这种情况下不会调用您的函数:

<head runat="server">
    <title></title>
    <script type="text/javascript">
        function pageLoad() {
            alert("OnPageLoad fired!");
            $("input[name$='btnNext']").hide();
        }
    </script>
</head>
<body>
    ...
</body>

您可以在 中阅读更多关于(or )pageLoad及其区别的信息。$(document).readyonloadthis article

于 2013-08-28T16:18:51.293 回答