event.PreventDefault()中的问题

时间:2013-11-11 03:49:33

标签: javascript jquery asp.net twitter-bootstrap

我在我的应用程序中使用twitter bootstrap。我为$(document).ready()中的链接按钮提供了 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 。我在Logout onclick事件中进行任何验证。我已经给出了针对Logout链接的preventDefault。但仍面临一个问题。 即使txtEmail留空,我也应该可以注销

提前感谢大家的回复。

2 个答案:

答案 0 :(得分: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 Demo

答案 1 :(得分:0)

试试这个,

$(document).ready(function () {
    $('#lnkLogout').click(function (e) { 
       e.preventDefault(); 
       // code for logout from application
    });         
}); 

<强> HTML

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

<强>更新

$(document).ready(function () {
    $('#lnkLogout').click(function (e) { 
       e.preventDefault(); 
       $("#btnLogout").click();
    });         
});