0
document.getElementById('search_field').onkeypress = function(e) {
        if (!e) e = window.event;
        var keyCode = e.keyCode || e.which;
        if (keyCode == '13') {
            window.location.href = '/search/?s=' + $('#search_field').val();
            return false;
        } 
    };

最后一个括号告诉我一个错误,并非所有代码路径都返回一个值,这里似乎有什么问题?谢谢

4

3 回答 3

4

尝试这个 :

document.getElementById('search_field').onkeypress = function(e) {
  如果(!e){
    e = 窗口.事件;
  }
  var keyCode = e.keyCode || e.哪个;
  if (keyCode == '13') {
    window.location.href = '/search/?s=' + $('#search_field').val();
    返回假;
  }
  返回真;
};

更多...我认为您可能不会同时使用纯 javascript 和 jquery

所以你宁愿选择

  • JAVASCRIPT:
      document.getElementById('search_field').onkeypress = function(e) {
            if (!e) e = window.event;
            var keyCode = e.keyCode || e.哪个;
            if (keyCode == '13') {
                window.location.href = '/search/?s=' + document.getElementById('search_field').value;
                返回假;
            }
          返回真;
        };
    
  • 查询
      $("#search_field").keypress(函数(事件){
        if ( event.which == 13 ) {
          event.preventDefault();
          window.location.href = '/search/?s=' + $(this).val();
          返回假;
        }
        返回真;
      });
    
于 2013-09-30T13:05:27.300 回答
2

结束你的功能return true.

如果按下任何其他键,然后按下 13,则流程应该正常继续。

于 2013-09-30T13:00:32.300 回答
-1

忽略你的工具。事件处理程序不必在每种情况下都返回一个值,如果只有一个特定的路径就可以了return false

于 2013-09-30T13:13:53.657 回答