未捕获的SyntaxError: JavaScript中无效或意外的令牌

Uncaught SyntaxError: Invalid or unexpected token in JavaScript

本文关键字:无效 意外 令牌 SyntaxError JavaScript      更新时间:2023-09-26

我在控制台收到以下错误信息:

var dataString = ''search=''+ searchid;

$(function(){
    $(".search").keyup(function() { 
        var searchid = $(this).val();
        var dataString = ''search=''+ searchid;
        if(searchid!='''') {
            $.ajax({
                type: "POST",
                url: "classes/search.php",
                data: dataString,
                cache: false,
                success: function(html) {
                    $("#result").html(html).show();
                }
            });
        }
        return false;    
    });
});

怎么了?

在这种情况下不需要转义引号:

var dataString = 'search=' + searchid;

正如注释的那样,下一行也有问题。删除斜杠

我认为当用户键入文本时,您想要对某个地方进行请求。

所以在这种情况下,即使:var dataString = 'search='+searchid;也没有帮助,因为它需要被unlencoded(如果有一些字符,例如:&打破了参数列表呢?)

所以我建议这样做,让jquery处理所有的东西:

$(function(){
  $(".search").keyup(function() {
    // post or get
    $.post(
      '/url/to/search', 
      {search: $(this).val()}, 
      function(response) {
        //here You handle response
      });
  });
});

修复:

$(function() {
  $('input.search').keyup(function() {
    if($(this).val() == '') {
      return; // if search query is empty don't proceed down
    }
    $.post(
      'classes/search.php', 
      {search: $(this).val()}, 
      function(response) {
        $('#result').html(response).show();
      });
  });
});