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

时间:2010-01-16 14:54:19

标签: asp.net javascript friendly-url

好吧,我正在努力让ASP.NET网址看起来用户友好,就像解释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>

2 个答案:

答案 0 :(得分:2)

你的onclientclick事件需要返回false;

答案 1 :(得分:0)

表单接受一个属性,显示哪些按钮设置为默认值:在

中使用它
<form id="form1" runat="server" defaultbutton="Button1">

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