Javascript 为什么即使我';我没有使用切换?
如果没有错误,我试图隐藏Javascript 为什么即使我';我没有使用切换?,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,如果没有错误,我试图隐藏div#errorLog,如果有则显示它。jQuery可以很好地检测错误,并且执行if语句时不会出现问题。但是,在执行代码时,hide()将显示div(如果已隐藏),而show()将隐藏div(如果已显示) 我用的是IE 11。它在Firefox中工作没有问题。为什么show()和hide()充当开关 HTML代码(不包括母版页): <asp:Content ContentPlaceHolderID="Title" runat="server"> &l
div#errorLog
,如果有则显示它。jQuery可以很好地检测错误,并且执行if语句时不会出现问题。但是,在执行代码时,hide()
将显示div
(如果已隐藏),而show()
将隐藏div
(如果已显示)
我用的是IE 11。它在Firefox中工作没有问题。为什么show()
和hide()
充当开关
HTML代码(不包括母版页):
<asp:Content ContentPlaceHolderID="Title" runat="server">
<title>Login</title>
</asp:Content>
<asp:Content ID="Login" ContentPlaceHolderID="Log_orReg" runat="server">
<h1 class="chosen"><a href="Login.aspx">Login</a></h1>
<h1 class="inline">|</h1>
<h1 class="notChosen"><a href="Register.aspx">Register</a></h1>
<br />
<form id="LoginForm" style="margin: 5px; " runat="server">
<div class="fill">Username:</div><asp:TextBox id="Username" CssClass="textboxes" runat="server" />
<asp:RequiredFieldValidator ID="vldUsername" runat="server" ErrorMessage="You must enter a username." ControlToValidate="Username" Text="*"></asp:RequiredFieldValidator>
<br />
<div class="fill">Password:</div><asp:TextBox id="Password" CssClass="textboxes" TextMode="Password" runat="server" />
<asp:RequiredFieldValidator ID="vldPassword" runat="server" ErrorMessage="You must enter a password." ControlToValidate="Password" Text="*"></asp:RequiredFieldValidator>
<br />
<asp:button ID="LogReg_btn" CssClass="LogReg_btn" onclick="cmd_submit" runat="server" Text="Login"></asp:button>
<div id="errorLog" class="Error_Log" runat="server">
<asp:ValidationSummary ID="ValidationSummary" runat="server" ShowMessageBox="false" DisplayMode="BulletList" ShowSummary="true" ShowValidationErrors="true" />
</div>
</form>
</asp:Content>
$(document).ready(function () {
$('.Error_Log').hide();
var bottom = $(".LogReg_forms").position().top + $('.LogReg_forms').outerHeight(true);
var position = parseInt(bottom + 10) + "px";
$(".Error_Log").css('top', position);
$(".LogReg_btn").click(function () {
var isPageValid = Page_ClientValidate('');
if (isPageValid == true) {
$(".Error_Log").hide("fade");
}
else {
$(".Error_Log").show("fade");
}
});
});
我找到了解决办法。jquery 1.6版存在此问题。如果遇到此问题,请确保已更新到最新的jquery版本。这似乎是因为您正在发回服务器,页面提交按钮并将其重置为原来的状态。或者动画正在运行,页面没有发回?它不会回答您的“为什么”问题,但您可以选择使用
切换
并向其传递bool参数,这样您就可以将单击函数向下折叠到一行:$(“.Error\u Log”)。切换(!page\u ClientValidate(“”))