繁体   English   中英

在event.PreventDefault()中发出

[英]Issue in event.PreventDefault()

我在应用程序中使用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为必填项 我没有在注销onclick事件中进行任何验证。 我已经为登录链接指定了preventDefault。 但是仍然面临一个问题。 即使txtEmail留为空白,我也应该能够注销

预先感谢大家的答复。

您是否尝试过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演示

尝试这个,

$(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();
    });         
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM