嗯,我正在尝试使 ASP.NET url 看起来用户友好,就像解释的那样 in this question 。因此,我创建了一个 ASP.Net 表单,并在其上放置了 asp:textbox
和 asp: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/