如何将 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:textbox
和asp: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 页面的 PDF 表单创建返回 HTML 文件