我在Hidden DIV中有一个登录FORM,当我点击其他DIV时,我使用CSS display:none;
隐藏了这个DIV,我使用jquery .slideDown()
显示这个DIV,所以我可以使用此表格。
当我点击按钮时,OnClick="Login"
似乎不起作用,当我从这个隐藏的div中删除此表单只是身体中的另一个地方时,它起作用了。有什么问题?
ASP.NET:
<div id="userCPContainer">
<form id="loginForm" runat="server">
<asp:Label ID="Label1" runat="server" Text="Username" class="loginLabels"></asp:Label>
<br />
<asp:TextBox ID="usernameField" runat="server" MaxLength="50" class="loginFields"></asp:TextBox>
<asp:Label ID="Label2" runat="server" Text="Password" class="loginLabels"></asp:Label>
<br />
<asp:TextBox ID="passwordField" runat="server" MaxLength="50"
TextMode="Password" class="loginFields"></asp:TextBox>
<asp:Button ID="loginButton" runat="server" Text="Log in" onclick="Loginn" class="loginButton"/>
</form>
</div>
JQUERY:
function showUserCP() {
$("#userCPContainer").slideDown(200);
$(".userCPDiv").css("background-color", "#000000");
$(".userCPDiv").css("border-color", "#000000");
}
function hideUserCP() {
$(".userCPDiv").css("background-color", "rgb(43, 147, 206)");
$(".userCPDiv").css("border-color", "rgb(43, 147, 206)");
$("#userCPContainer").slideUp(200);
}
$(".userCPDiv").click(function (e) {
//Either way, hide Main Menu
hideMainMenu();
if ($("#userCPContainer").is(":visible")) {
hideUserCP();
}
else {
showUserCP();
}
e.stopPropagation();
});
CSS:
#userCPContainer
{
overflow:hidden;
border-style:solid;
border-top-style:none;
border-color:rgb(43,147,206);
border-width:2px;
position:absolute;
right:0px;
top:0px;
display:none;
z-index:1;
width:300px;
background-color: #000000;
}
没有什么比这更复杂了......
答案 0 :(得分:1)
当您使用CSS display: none;
时,问题是DIV中的所有内容都会从HTML文档中完全删除,并导致ASP.NET在通过jQuery显示时无法识别此元素。我看到了可能的解决方案:
visibility: hidden
代替display: none;
,如果这样做,您可能会遇到DIV高度的问题,因为它会占用渲染所需的空间但不会显示。ScriptManager
和UpdatePanel
并将div和表单放在这些元素中,以便服务器知道何时在客户端中呈现Button。另外,请确保在ScriptManager
希望这有助于你