我有一个用户控件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>
最佳答案
尝试使用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>
您可以阅读有关
pageLoad
的更多信息,以及$(document).ready
中与onload
(或this article
)的区别。