0

アプリケーションで 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 が空白のままでも、ログアウトできるはずです

ご回答いただきありがとうございます。

4

2 に答える 2

0

試しましたreturn falseか?

  <a id="lnkLogout" href="javascript:void(0);" onclick="PageLogout(); return false;">

または、PageLogout()内部Click()と一緒にイベント ハンドラーのe.preventDefault()内部に配置します。

<a id="lnkLogout" href="javascript:void(0);"><i class="icon-off">
                        </i>Logout</a>

<script type="text/javascript" language="javascript">
  $(document).ready(function () {
  $('#lnkLogout').click(
   function PageLogout(e) {
         // more code here
         e.preventDefault(); });         
    });  
</script>

JSFiddleデモを見る

于 2013-11-11T03:54:00.673 に答える