asp.net - 如何将 html 按钮设置为 ASP.Net 表单的默认按钮?

标签 asp.net javascript friendly-url

嗯,我正在尝试使 ASP.NET url 看起来用户友好,就像解释的那样 in this question 。因此,我创建了一个 ASP.Net 表单,并在其上放置了 asp:textboxasp:button 。此外,我还设置了 onclientclick 属性来调用 JS 函数,该函数通过设置 windows.location.href 导航到智能 URL。在 Firefox 中它运行良好,但在 IE 和 Opera 中,浏览器首先导航到智能 url,然后关闭连接并使用 asp.net 表单操作发送回发。

我尝试使用 html 按钮而不是服务器按钮来解决它。它可以工作,但问题是它不能设置为 asp.net 表单的默认值。因此,如果用户点击它,它就会完成它的工作。但是,如果用户在表单处于事件状态时按下 Enter,表单将执行其操作,因此不会按下按钮,并且不会发生 JS url 重写。那么如何解决这个问题呢?

我的 JS 看起来像这样:

function searchRedirect() {
    var query = $get('colSearch');
    window.location.href = 'colSearch?q=' + query.value;
    return false;
}

在 search.aspx 中我有

<form id="MainForm" runat="server" method="get">
        <asp:TextBox id="colSearch" runat="server" Width="615px" CssClass="searchLine"></asp:TextBox>
        <input id="Button1" type="button" value="Search!" onclick="searchRedirect();" class="search" />

我也尝试过使用 asp:button:

<form id="MainForm" runat="server" method="get" defaultbutton="submitReqBtn">
        <asp:TextBox id="colSearch" runat="server" Width="615px" CssClass="searchLine"></asp:TextBox>
        <asp:Button runat="server" Text="Search!" ID="submirReqBtn" 
            onclientclick="searchRedirect();" CausesValidation="False" 
            EnableViewState="False" UseSubmitBehavior="False"></asp:Button>
</form>

最佳答案

您的 onclientclick 事件需要返回 false;

关于asp.net - 如何将 html 按钮设置为 ASP.Net 表单的默认按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2077702/

相关文章:

c# - 制作面板及其所有控件的副本

javascript - Angularjs $http 无法从 Asp.net webapi 4 获取数据

.htaccess - 防止 htaccess 表单重定向到 url 中的目录

pagination - 在一个安静的 url 上编码分页信息的标准方法得到了吗?

c# - Func<string,string> 和 delegate 有什么区别?

c# - 使用 asp.net 文本框进行 linq to sql 更新的问题

javascript - React 试图循环遍历状态对象

php - 使用 mod_rewrite RewriteRule 重写所有查询以不需要 .php 扩展名

javascript - 图片就在另一张图片之上

javascript - 事件仅触发一次