2016-04-25 69 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請求被使用或者你需要的地方它是一個字符串而不是一個對象。