未捕获的SyntaxError:JavaScript

时间:2016-09-06 03:03:22

标签: javascript

我在控制台上收到此错误消息:

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;    
    });
});

那里有什么问题?

2 个答案:

答案 0 :(得分:2)

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

var dataString = 'search=' + searchid;

如评论所述,下一行也存在问题。删除斜杠。

答案 1 :(得分:-1)

我认为当用户输入文本时你想向某个地方发出请求。

所以在这种情况下甚至:var dataString = 'search='+searchid;也无济于事,因为它需要被urlencoded(如果有一些字符,例如:&打破了参数列表?)

所以我建议做以下操作,让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();
      });
  });

});