1. 程式人生 > >JQuery UI autocomplete 中文亂碼的解決方法

JQuery UI autocomplete 中文亂碼的解決方法

JQuery UI autocomplete 的功能,類似於 google 搜尋框中自動提示,用於 Web 網頁開發中的文字框的自動填充。雖然比另一個類似控制元件(http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/)簡單,但基本功能都有,配合 JQuery UI 可切換網頁介面面板的輔助功能,仍然值得一用。

只是JQuery UI autocomplete 預設的用法,中文搜尋自動提示會有亂碼。

原因在於它預設使用

 $.getJSON( url, request, response );

來獲取後臺資料,這時候 request 中的搜尋字串以未編碼格式,通過 HTTP GET 提交到後臺伺服器,導致後臺讀取資料亂碼。

網上介紹的解決辦法,大多需要同時在網頁處、後臺 J2EE server 讀資料處進行兩次 URI encode/decode,甚至有人建議直接更改 JQuery UI autocomplete 程式碼,這都很麻煩,不是最佳解決方案。

這裡介紹一種方法,那就是把 JQuery UI autocomplete 的 source 引數,從 url 改成一個 javascript 函式,通過 Ajax POST 方式,獲取資料,然後在網頁上下拉提示,程式碼很簡單:

function bind_autocomplete_event(var_jquery_obj,var_url){
 var_jquery_obj.autocomplete({
  source:function(request_paramters,response_callback){
   //JQuery UI 預設使用 getJSON 提交資料,中文會亂碼,改成用 post 提交
   jq.post(var_url,request_paramters,function(data,status){
    response_callback(data);
   });
  }
 });
}

呼叫方法:

原來的 JQuery UI autocomplete 呼叫方法:

 $("#partCd").autocomplete({

source:'../autocomplete/tm_part'

});

更改後的呼叫方法:

bind_autocomplete_event($("#partCd"),'../autocomplete/tm_part');

很簡單,對不對?

歡迎轉載。轉載請註明來源網址。

相關推薦

JQuery UI autocomplete 中文亂碼解決方法

JQuery UI autocomplete 的功能,類似於 google 搜尋框中自動提示,用於 Web 網頁開發中的文字框的自動填充。雖然比另一個類似控制元件(http://bassistance.de/jquery-plugins/jquery-plugin-autoc

兩種方式解決jquery Ajax 傳送中文亂碼方法

    查過網上有很多方法,但很多都不成功,可能是因為在不環境下的區別吧! 首先,必須保證前臺後臺的編碼統一,其次在連線資料庫時的url也要指定編碼。 第一:簡單直接,修改頁面 data:{ use

jquery $("#form").serialize()傳中文亂碼解決方法

jquery form表單.serialize()序列化後中文亂碼問題原因及解決 原因:.serialize()自動呼叫了encodeURIComponent方法將資料編碼了  解決方法:呼叫decodeURIComponent(XXX,true);將資料解碼  例如

Eclipse的properties文件中文亂碼解決方法

text content elf abd 問題 clas nbsp ips -o 轉自:http://jingyan.baidu.com/article/ed2a5d1f3381d709f6be17f8.html 打開Myeclipse,找到window這一欄,點

Codeblocks 中文亂碼解決方法

gif www 有效 file odi fault 輸入 打開文件 一個 1.修改源文件保存編碼 settings->Editor->gernal settings 右邊的Encoding group Box Use encoding when openin

前臺傳參到後臺中文亂碼解決方法

sele watermark img -o reset 圖片 亂碼 字符 size 解決前端傳參到後臺的字符集編碼問題!!!第一種:---java的web.xml中加上字符集過濾 (推薦使用)<filter> <filter-name>

Django 分頁查詢並返回jsons數據,中文亂碼解決方法

返回json 類型 模型 數據流 class stringio self option sci Django 分頁查詢並返回jsons數據,中文亂碼解決方法 一、引子 Django 分頁查詢並返回 json ,需要將返回的 queryset 序列化, demo 如下: #

sublime 中文亂碼解決方法

1.sublime 中 preference -> browse->packages 2.在彈出的視窗返回上一層 找到Installed Packages 資料夾 3.下載檔案 放到這個Installed Packages資料夾裡面

Qt5中文亂碼解決方法

Qt中的中文顯示,經常會出現亂碼,但在UI設計介面上新增的中文是不會出現亂碼的,如果你剛使用QT,那麼你肯定會碰到這個問題。 網上搜索一下,找到的都是這種: #include < QTextCodec > int main(int argc, char **argv) { .

request.getParameter(“引數名”) 中文亂碼解決方法【新手設定問題】【JSP】-表單傳值問題:為什麼設定UTF-8之後還是亂碼

request.getParameter(“引數名”) 中文亂碼解決方法【新手設定問題】【JSP】-表單傳值問題:為什麼設定UTF-8之後還是亂碼? 問題:jsp讀取的value值亂碼;設定UTF-8之後還是亂碼…… 備註:本文是轉載的,題目上增加關鍵詞方便查詢

git- win10 cmd git log 中文亂碼 解決方法

在win10中,用cmd或者bash中使用git時候,經常遇到亂碼問題,網上類似的教程很多,一般可以直接在cmd/bash中輸入如下設定命令: git config --global core.quotepath false git config --global gui.enco

Visual Studio Code 開啟程式檔案中文亂碼解決方法

文章原始地址: http://feotech.com/?p=76 使用Visual Studio Code開啟程式檔案後對應的中文亂碼,造成這種現象的原因是檔案的編碼方式不同. 可以通過調整開啟檔案的編碼方式來解決Visual Studio Code開啟中文亂碼的問題. 操

Python3 json.dumps中文亂碼解決方法

1.python檔案開頭匯入 from __future__ import unicode_literals import json string = '今天' print(json.dumps(str,ensure_ascii=False)) 參考資料:

Apache Index目錄中文亂碼解決方法

來源地址: http://httpd.apache.org/docs/2.0/mod/mod_autoindex.html IndexOptions Directive Description: Various configuration settings for directory

python爬蟲中文亂碼解決方法

python爬蟲中文亂碼 前幾天用python來爬取全國行政區劃編碼的時候,遇到了中文亂碼的問題,折騰了一會兒,才解決。現特記錄一下,方便以後檢視。 我是用python的requests和bs4庫來實現爬蟲,這兩個庫的簡單用法可參照python爬取噹噹網的書籍資訊並儲存到csv檔案 亂碼未處理前部分程式碼

centos7 中文亂碼解決方法

1.檢視安裝中文包: 檢視系統是否安裝中文語言包 (列出所有可用的公共語言環境的名稱,包含有zh_CN) # locale -a |grep "zh_CN" 沒有輸出,說明沒有安裝,輸入下面的命令安裝: # yum groupinstall "fonts" -y 安

Jupyter Notebook 用matplotlib作圖顯示中文亂碼解決方法

作圖的時候,中文總是顯示亂碼,折騰了一會,找到非常簡單的方法,只需要加一行程式碼就行 在 import matplotlib.pyplot as plt  後面加上下面一行語句: plt.rc('font', family='SimHei', size=7)  ##

Java Web 中 Servlet 中文亂碼解決方法

Servlet中文亂碼問題解決方法 import java.io.*; import java.net.URLEncoder; import javax.servlet.*; import javax

request.getParameter(“引數名”) 中文亂碼解決方法【新手設定問題】【JSP】-表單傳值問題

備註:本文是轉載的,題目上增加關鍵詞方便查詢,另外部分文字排版了,方便檢視。(點選檢視源網頁) 原文: 在Java 開發中,如果框架搭建的不完善或者初學者在學習過程中,出現中文亂碼是經常的事兒。(哈。誰讓發明java語言的不是中國人呢) 今天跟大家分享幾個

Centos 中文亂碼解決方法

Centos 中文亂碼解決方法 問題描述 crontab -e 新增定時任務時,直接將下面內容貼上過去,結果竟然亂碼了。 # 每個星期日凌晨3:00執行完全備份指令碼 0 3 * * 0 /bin/bash -x /root/bash/Mysql-FullyBak.sh >/dev/null 2&