2016-04-25 53 views
0

我正在使用JQuery类型提前函数通过使用用户输入的三个字符来匹配和显示雇主名称的建议。但是,如果用户输入撇号('),因为雇主名称有时有撇号(例如:奥兰多),此功能不起作用,请让我知道如何处理这个jquery函数中的撇号。如何在请求中处理撇号以提示jquery函数

$('.mypage').typeahead({   
     minLength: 3, 
     items: 'all', 

    source: function (request, response) { 

     $.ajax({ 
      url: "/AutoCom.asmx/MatchEmployers", 
      data: "{ 'employerName': '" + request + "' }", 
      dataType: "json", 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      dataFilter: function (data) { return data; }, 
      success: function (data) { -------- 
+0

有一个取巧的办法是,你可以通过你已经发送给请求对象,我的意思是在你Codeside之前每次检查单引号之前放置另一个单引号替换“'”(单引号)。 –

+0

感谢您的建议。但是在后面的代码中的web方法甚至在请求中有撇号时没有被打中。当我输入撇号时,JQuery函数完全停止工作。 – Sunny

回答

0

今天,我碰到这个“bug”(不知道这个)。我尝试了一些方法,但似乎工作的唯一方法是使用等效的html ascii代码,对于简单的“直引号/撇号”,我的例子是'。 我在php中只写了几行代码,以避免在json中的标题位置出现这个撇号。 工作正常,与使用数组的typeahead脚本(在我的情况下php写入相应的javascript数组)。

0

看样子,你想JSON发送到您的AJAX网址,但你构建字符串手动发送。你只是串联串在一起的,所以,如果有在您的要求报价(如“O'lando”),它的东西,如

data: "{ 'employerName': 'O'lando' }", 

不能因为引号工作结束是不对的。

当你想构建JSON发送至某处,不要试图去建立它自己,让浏览器为你做它。你想要的东西,如:

data: JSON.stringify({ 'employerName': request }), 

JSON.stringify功能需要一个JavaScript对象,并处理所有的转义需要为它是一个纯粹的JSON字符串,然后可以在web请求被使用或者你需要的地方它是一个字符串而不是一个对象。