主页面中的“注销”按钮的onclick事件问题

问题描述 投票:0回答:2

我在我的应用程序中使用twitter bootstrap。我在Master页面中有一个Logout按钮,我在.aspx页面(内容页面)中有验证。

当我点击Logout按钮时,它正在验证Content页面中的文本框字段(这不应该在这里发生)。

这是我的代码;

Master.aspx:

<div class="navbar">
    <div class="navbar-inner">
        <div class="container-fluid">               
            <ul class="nav ace-nav pull-right">                   
                <li class="blue" style="background-color: #5090C1"><a data-toggle="dropdown" href="#" class="user-menu dropdown-toggle">                       
                    <span><small>Welcome,</small>
                        User Name  </span> <i class="icon-caret-down"></i></a>
                    <ul class="user-menu pull-right dropdown-menu dropdown-yellow dropdown-caret dropdown-closer" id="user_menu">                                                     
                        <li><a href="javascript:void(0);" onclick="Logout();"><i class="icon-off"></i>Logout</a></li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</div>
<div id="main-container" class="main-container container-fluid">
    <div class="main-content">
        <div class="page-content">
            <asp:ContentPlaceHolder ID="MainContent" runat="server"></asp:ContentPlaceHolder>
        </div>
    </div>
</div>

<asp:Button ID="btnLogout" OnClick="btnLogout_Click" runat="server" class="hidden" />
<script type="text/javascript">
    function Logout() {
        $("#btnLogout").click();
    }
</script>

Master.aspx.cs:

 protected void btnLogout_Click(object sender, EventArgs e)
    {
        Session.Clear();
        Session.Abandon();
        Session.RemoveAll();
        Response.Redirect("~/SampleWindowCloser.htm");              
    }

Default.aspx的:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" MasterPageFile="~/Master.master"
    Inherits="Default" ClientIDMode="Static" %>
<asp:Content ID="TestContentBody" runat="server" ContentPlaceHolderID="MainContent">
    <div class="row-fluid">
        <div class="span6">
            <div class="control-group">
                <label class="control-label" for="txtName">Name</label>
                <div class="controls">
                    <input type="text" data-val="true" data-val-required="Name is required." title="Name" id="txtName">
                    <span data-valmsg-replace="true" data-valmsg-for="txtName" class="field-validation-valid text-warning red"></span>
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="txtAge">Age</label>
                <div class="controls">
                    <input type="text" validation="name" description="Age" title="Age" id="txtAge">
                    <span data-valmsg-replace="true" data-valmsg-for="txtAge" class="field-validation-valid text-warning red"></span>
                </div>
            </div>
        </div>
    </div>
</asp:Content>

单击“注销”按钮后,如何停止验证内容页面?

请帮帮我。

asp.net twitter-bootstrap jquery-validation-engine
2个回答
3
投票

在你的按钮上使用CauseValidation=false

关于它的更多讨论是

  1. i must add CausesValidation="False" to every ASP Button to work, why?
  2. RequiredFieldValidator and preventing CausesValidation

编辑1

这是堆栈溢出中的类似问题,其中取消按钮不验证

Form Validation With Bootstrap (jQuery)

编辑2

我已经编辑了小提琴替换按钮用锚取消然后它工作。所以我认为您可以在代码中使用相同的链接按钮。

链接JSFiddle


1
投票

只需将注销按钮的CausesValidation属性设置为false即可。

 <asp:Button ID="btnLogout" OnClick="btnLogout_Click" runat="server" class="hidden" CausesValidation="false" />

编辑

如果您打算使用锚标记,则可以创建一个单独的注销页面,您只需清除pageLoad事件上的会话变量。使用锚标记重定向到此注销页面。

© www.soinside.com 2019 - 2024. All rights reserved.