并非所有代码路径都会返回值 (JavaScript)

mik*_*use 1 javascript return-path

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;
        } 
    };
Run Code Online (Sandbox Code Playgroud)

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

Man*_*anu 5

尝试这个 :

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(function( 事件 ) {
        if ( event.which == 13 ) {
          event.preventDefault();
          window.location.href = '/search/?s=' + $(this).val();
          返回假;
        }
        返回真;
      });
    

  • 总是返回 false 将导致他的文本框不会针对其他按键进行更新。他想要重定向 onEnter,这样只有 Enter 按键才应该返回 false。 (2认同)