【问题标题】:all button click events overwritten by submit button提交按钮覆盖的所有按钮单击事件
【发布时间】:2014-12-02 09:09:18
【问题描述】:

我有一个包含两个图像按钮的母版页,一个用于帐户登录,另一个用于搜索站点。附加的 aspx 页面包含一些带有提交按钮的 freebees 的请求表。所有按钮都有运行不同脚本的点击事件,然后将它们重定向到各自的页面。主按钮不相互冲突。 Search 执行搜索,login 执行登录。但是,当包含请求表单的页面加载到母版页中时,它会将其 URLredirect 强加到母版页按钮上,从而导致来自两个按钮的请求表单的回发。我知道这是 .NET 将整个页面作为网络表单的一个已知问题。我在所有这些上将 UseSubmitBehavior 设置为 False,希望点击事件优先,但没有改变。任何人都知道如何阻止提交按钮覆盖图像按钮?非常感谢

 aspx:Request Form Button
 <asp:Button ID="btSubmit" CssClass="FormBtn" runat="server" Text="Submit" OnClick="btSubmit_Click"
                    OnClientClick="window.scrollTo = function(x,y) { return true; };" 
                    value="greaselid" UseSubmitBehavior="False"/>


 CS:Request Form button event
  protected void btSubmit_Click(object sender, EventArgs e)
    {
        var validator = new Recaptcha.RecaptchaValidator
        {
            PrivateKey = ConfigurationManager.AppSettings["RecaptchaPrivateKey"],
            RemoteIP = Request.UserHostAddress,
            Challenge = Context.Request.Form[RECAPTCHA_CHALLENGE_FIELD],
            Response = Context.Request.Form[RECAPTCHA_RESPONSE_FIELD]
        };

   //after validation email request is sent and then return to same page

 aspx:Login
  <div id="logonbox_SB">
    <div id="FS_1">
        <asp:Label ID="Label1" class="LoginLabel1" runat="server" Text="Account Number"></asp:Label>
        <asp:TextBox ID="AcctNum" class="AcctNumTexbox" runat="server"></asp:TextBox>
    </div>
    <div id="FS_2">
        <asp:Label ID="Label2" runat="server" class="LoginLabel2" Text="Access Code"></asp:Label>
        <asp:TextBox ID="MtrNum" class="MtrNumTexbox" runat="server"></asp:TextBox>
    </div>
    <asp:ImageButton ID="Login1" type="submit" runat="server" class="boxsubmitbtn" src="/resources/buttons/login.gif"
        OnClick="LogInBtn_Click" UseSubmitBehavior="False"/>
</div>

  CS:Login
  protected void LogInBtn_Click(object sender, EventArgs e)
    {
        string AcctNbr = AcctNum.Text;
        Session["AcctNum"] = int.Parse(AcctNbr);
        string MtrNbr = MtrNum.Text;
        Session["MtrNum"] = MtrNbr;

   //account is verified and redirected to user's account page

  aspx:search
  <div id="SearchForm">

    <asp:TextBox ID="searchQuery" runat="server" size="15" />
<asp:ImageButton ID="searchButton" runat="server" Text="GO" src="/RESOURCES/buttons/go_button.gif" value="submit2" style="font-size: 11px;" class="GoButton" alt="Go" OnClick="searchButton_Click" UseSubmitBehavior="False"/> 

   </div>

  cs:search
  protected void searchButton_Click(object sender, EventArgs e)
    {
        StringBuilder redirectUrl = new StringBuilder();
        //The URL to your resultpage
        redirectUrl.Append("~/about/search_results.aspx");
        //Add your CSE unique identifier
        redirectUrl.Append("?cx='google_account_nbr'%3Aiylaun_ayf0");
        //Add your advertising location code
        //redirectUrl.Append("&cof=FORID%3A11");
        //The search query
        redirectUrl.Append("&q=" + searchQuery.Text);
        //Redirect to the resultpage
        Response.Redirect(redirectUrl.ToString());
    }
  //user is redirected to search result page

【问题讨论】:

    标签: jquery asp.net forms submit


    【解决方案1】:

    您可以为此使用 AJAX。只需创建一个按钮,将数据从第一个 div 发送到 .. 您想发送信息的任何地方。然后,在同一个函数中,使用您想要的信息调用另一个 AJAX。你在使用jquery还是什么? :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 2015-11-19
      相关资源
      最近更新 更多