1

入力テキストボックスで「Enter」キーをキャッチし、入力に基づいてページに新しい URL を割り当てようとしています。問題は、に割り当てられたリンクwindoe.location.hrefが現在の値によって何らかの形で上書きされてwindoe.location.hrefおり、ページが割り当てられた新しい URL をロードする代わりに更新されていることです。

コードは次のとおりです。

  $(this).on('keydown', function(event) {
       myKeyCode=event.which
       if(myKeyCode==13) //'enter' key pressed
       {
          link=window.location.origin + '/search?search=' + $(this).val();
          window.location.href=link;
       }
  });

keypressイベントのデフォルトの動作が干渉していると推測しています。を使用してデフォルトの動作を防止しようとしevent.preventDefault();ましたが、入力テキストボックスが入力を受け付けなくなりました。

別の奇妙な観察: alert('something');if ステートメント内の 2 つの行の間に を挿入すると、コードは問題なく動作します。のようです

window.location.origin + '/search?search=' + $(this).val();

は評価に時間がかかり、アラートを使用すると評価に十分な時間が与えられます。

4

1 に答える 1