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

Posted

技术标签:

【中文标题】如何将 html 按钮设置为 ASP.Net 表单的默认按钮?【英文标题】:How to set html button as default for ASP.Net form? 【发布时间】:2011-01-05 20:51:28 【问题描述】:

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

我尝试使用 html 按钮而不是服务器按钮来解决它。它可以工作,但问题是它不能设置为 asp.net 表单的默认值。所以'如果用户点击它,它就会工作。但是如果用户只是在表单处于活动状态时按下回车,表单会执行其操作,因此不会按下按钮并且不会发生 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>

【问题讨论】:

【参考方案1】:

你的 onclientclick 事件需要返回 false;

【讨论】:

我用asp:button 尝试过 - 仍然,浏览器关闭连接。我在问题中添加了示例代码 - 可能我的代码弄错了。 好吧,我在按钮描述中的 onclientclick 中添加了return false;,所以它看起来像onclientclick="searchRedirect(); return false;",一切都开始工作了。谢谢!【参考方案2】:

表单接受一个属性,显示哪些按钮被设置为默认值:像在中一样使用它

<form id="form1" runat="server" defaultbutton="Button1">

其中 Button1 是页面上按钮的 ID。

【讨论】:

它不起作用,因此指定为默认的按钮应实现 IButtonControl 接口。 Html 按钮没有实现它,因为它只是一段 html 代码

以上是关于如何将 html 按钮设置为 ASP.Net 表单的默认按钮?的主要内容,如果未能解决你的问题,请参考以下文章

将 asp.net 表单“转换”为 html 表单

如何使“div”按钮提交其所在的表单?

如何将 css 样式设置为 asp.net 按钮?

提交到 ASP.NET 页面的 PDF 表单创建返回 HTML 文件

如何在 HTML 中为 ASP.NET MVC 创建一个按钮? [复制]

asp.net如何让不同的按钮将表单提交到不同的页面