入力テキストボックスで「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();
は評価に時間がかかり、アラートを使用すると評価に十分な時間が与えられます。