アプリケーションで Twitter ブートストラップを使用しています。$(document).read() のリンク ボタンに e.preventDefault を指定しましたが、機能していません。
これが私のコードです:
マスター ページ:
<a id="lnkLogout" href="javascript:void(0);" onclick="PageLogout();"><i class="icon-off"></i>Logout</a>
<asp:Button ID="btnLogout" OnClick="btnLogout_Click" runat="server" class="hidden" />
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('#lnkLogout').click(function (e) { e.preventDefault(); });
});
function PageLogout() {
$("#btnLogout").click();
}
</script>
MasterPage.aspx.cs:
protected void btnLogout_Click(object sender, EventArgs e)
{
Session.Clear();
Session.Abandon();
Session.RemoveAll();
Response.Redirect("~/SampleWindowCloser.htm");
}
SampleDefaultPage.aspx :
<div class="row-fluid">
<div class="form-horizontal">
<h4 class="header blue bolder smaller">
Contact</h4>
<div class="control-group">
<label for="form-field-email" class="control-label">
Email</label>
<div class="controls">
<input type="text" style="width:200px;" data-val="true"
data-val-required="Mobile Number is required."
id="txtEmail">
<div class="space-3">
</div>
<span data-valmsg-replace="true" data-valmsg-for="txtEmail"
class="field-validation-valid text-warning red"></span>
</div>
</div>
<div class="control-group">
<label for="form-field-website" class="control-label">
Phone Number</label>
<div class="controls">
<input type="text" style="width:200px;"
id="txtPhno">
</div>
</div>
</div>
txtEmailを必須フィールドとして指定しました。そのフィールドを空白のままにして、マスター ページの [ログアウト] ボタンをクリックすると、txtEmail is requiredと表示されます。Logout onclick イベントで検証を行いません。ログアウト リンクに preventDefault を指定しました。しかし、まだ問題に直面しています。txtEmail が空白のままでも、ログアウトできるはずです。
ご回答いただきありがとうございます。