2010-01-16 2 views
0

Ну, я пытаюсь сделать URL-адрес ASP.NET удобным для пользователя, как это было объяснено in this question. Поэтому я создал форму ASP.Net и разместил на нем asp:textbox и asp:button. Также я установил атрибут onclientclick для вызова функции JS, которая переводит на смарт-URL, установив windows.location.href. В Firefox он работает хорошо, но в IE и Opera браузер сначала переходит к интеллектуальному URL-адресу, а затем закрывает соединение и отправляет обратную передачу, используя действие формы asp.net.Как установить кнопку html по умолчанию для формы ASP.Net?

Я попытался решить проблему, используя html-кнопку вместо серверных. Он работает, но проблема в том, что он не может быть установлен по умолчанию для формы asp.net. Поэтому, если пользователь нажимает на него, он выполняет свою работу. Но если пользователь просто нажимает вводить, когда форма активна, форма выполняет свое действие, поэтому кнопка не нажимается, и переписывание URL-адреса JS не происходит. Итак, как я могу решить эту проблему?

My 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

Ваше OnClientClick событие должно вернуться ложный;

+0

Я пробовал это с помощью кнопки 'asp: button' - браузер закрывает соединения. Я добавил пример кода в вопрос - возможно, я ошибся в своем коде. – flashnik

+0

Ну, я добавил 'return false;' to onclientclick в описании кнопки, чтобы он выглядел как 'onclientclick =" searchRedirect(); return false; " и все начало работать. Спасибо! – flashnik

0

форма принимает показ атрибутов, которые из кнопок устанавливаются по умолчанию: использовать его как в

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

где Button1 является идентификатором кнопки на странице.

+0

Это не работает, поэтому кнопка, указанная как значение по умолчанию, должна реализовывать интерфейс IButtonControl. Кнопка Html не реализует его, поскольку это всего лишь фрагмент кода html – flashnik

 Смежные вопросы

  • Нет связанных вопросов^_^