0
我試圖隱藏div#errorLog
如果沒有錯誤,並顯示它,如果有。 jQuery檢測到錯誤並且執行正在經歷if語句而沒有問題。但是,執行代碼時,hide()
將顯示div
,如果它已被隱藏,並且show()
將隱藏div
(如果已顯示)。爲什麼.show()和.hide()切換,即使我沒有使用切換?
我使用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>
jQuery代碼:
$(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");
}
});
});
看起來像是因爲您要回發到服務器,並且頁面提交併將按鈕重置爲原來的狀態。或者動畫正在工作並且頁面未回傳? – epascarello
它不回答你的「爲什麼」的問題,但你有一個選擇是使用'toggle'並傳遞一個布爾參數,所以你可以摺疊你的點擊函數到一行:'$(「。Error_Log」) .toggle(!Page_ClientValidate(''))' – bgs264