Что ж, я пытаюсь сделать URL-адреса ASP.NET удобными для пользователя, как было объяснено в этом вопросе. Поэтому я создал форму ASP.Net и поместил в нее asp:textbox
и asp:button
. Также я установил атрибут onclientclick
для вызова функции JS, которая переходит к умному URL-адресу, установив windows.location.href
. В Firefox это работает хорошо, но в IE и Opera браузер сначала переходит к умному URL-адресу, но затем закрывает соединение и отправляет обратную передачу, используя действие формы asp.net.
Я попытался решить это с помощью html-кнопки вместо серверных. Он работает, но проблема в том, что его нельзя установить по умолчанию для формы asp.net. Итак, если пользователь нажимает на него, он выполняет свою работу. Но если пользователь просто нажимает ввод, когда форма активна, форма выполняет свое действие, поэтому кнопка не нажимается и перезапись URL-адреса JS не происходит. Итак, как я могу решить эту проблему?
Мой 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>