1

我试图在输入文本框中捕获“输入”键,然后根据输入为我的页面分配一个新的 url。问题是分配给的链接以windoe.location.href某种方式被当前值覆盖,windoe.location.href并且页面正在刷新而不是加载分配的新网址。

这是代码:

  $(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 语句中的两行之间放置一个时,代码表现得很好。这似乎是

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

需要一段时间进行评估,使用 alert 会给它足够的时间来评估。

4

1 回答 1

0
if (myKeyCode==13) {
  event.preventDefault();
  link=window.location.origin + '/search?search=' + $(this).val();
  window.location.href=link;
}
于 2013-08-01T21:49:22.610 回答