Как я могу получить ключ ввода в Firefox 3.5 и перенаправить страницу с помощью Window.Location? - PullRequest
0 голосов
/ 27 ноября 2009

Я пытаюсь реализовать функцию поиска, которая захватывает ключ ввода и перенаправляет на другую страницу в приложении ASP.NET 3.5. К сожалению, он не работает в Firefox (версия 3.5), но в IE он работает отлично. Пожалуйста, смотрите следующий код:

Сценарий:

function searchKeyPress(e) {
  if (window.event) { e = window.event; }
  if (e.keyCode == 13) {
    document.getElementById('btnSearch').click();
  }
}
function redirect() {
  document.location = "http://localhost:5555/search.aspx?q=keyword";
}

Markup:

  <form name="form1" method="post" runat="server" id="form1"/>
     <input type="text" id="txtSearch" onkeypress="searchKeyPress(event);"/>
     <input type="button" id="btnSearch" Value="Search" onclick="redirect();"/>
  </form/>

Кто-нибудь еще сталкивался с этой проблемой?

Любая помощь будет оценена!

Ответы [ 2 ]

1 голос
/ 27 ноября 2009

Почему бы вам не использовать кнопку «Отправить» вместе с действием формы для перехода на страницу поиска? Кнопка отправки демонстрирует поведение, которое вы ищете по умолчанию, поэтому нет необходимости в JavaScript.

<form name="form1" method="get" action="/search.aspx" id="form1"/>
    <input type="text" id="q" />
    <input type="submit" id="btnSearch" Value="Search" />
</form/>

Если вы действительно хотите придерживаться своего решения javascript (которое я не рекомендую, потому что оно менее доступно и зависит от javascript), попробуйте

function searchKeyPress(e) {
  e = e || window.event || event;
  var code = e.charCode || e.keyCode || e.which;
  if (code == 13) {
    redirect();
  }
}
0 голосов
/ 27 ноября 2009
  <script type="text/javascript">
    function searchKeyPress(e) {
        if (window.event) { e = window.event; }
        if (e.keyCode == 13) {
            document.getElementById('form1').submit();
        }
    }
    function redirect() {
       document.location = "http://localhost:5555/search.aspx?q=keyword";
    }
</script>

Использовать формы.submit () вместо .click (), .click () поддерживается только на т. Е. Отправка поддерживается и в Firefox.

...