正在刷新页面而不是加载指定的URL

时间:2013-08-01 21:40:59

标签: javascript jquery href keypress

我正在尝试在输入文本框中捕获“输入”键,然后根据输入为我的页面分配一个新的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();阻止默认行为,但这会阻止输入文本框进行任何输入。

另一个奇怪的观察:当我在if语句中的两行之间放置一个alert('something');时,代码表现得很好。好像是

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

需要一段时间才能进行评估,使用警报会给它足够的时间进行评估。

1 个答案:

答案 0 :(得分:0)

if (myKeyCode==13) {
  event.preventDefault();
  link=window.location.origin + '/search?search=' + $(this).val();
  window.location.href=link;
}
相关问题