2016-04-25 9 views
0

JQuery Type ahead関数を使用して、ユーザーが入力した3文字を使用して雇用者名の候補を照合して表示しています。しかし、ユーザーがアポストロフィ( ')を入力すると、アポストロフィがあることがあります(例:オランド)。この関数は機能しません。この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

「 '」(一重引用符)は、REQUESTオブジェクトに送信する前に毎回チェックする必要があるため、その単一引用符の前に別の単一引用符を置くことで置き換えることができます。 –

+0

ありがとうございます。しかし、コードのWebメソッドは、私が要求にアポストロフィを持っている場合でもヒットしていません。アポストロフィを入力すると、JQuery関数は全く機能しなくなります。 – Sunny

答えて

0

今日、私はこの "バグ"(これについてはわからない)にぶつかります。私はいくつかの方法で試してみますが、動作するように見える唯一のものは、私の場合、単純な "直線引用符/アポストロフィ"の場合は'に相当するhtml ASCIIコードを使用することです。 私はjson内のタイトル位置にこのアポストロフィを避けるためにphpにほんの数行しか書きませんでした。 配列を使用するtypeaheadスクリプト(私の場合、PHPは対応するjavascript配列を書き込みます)でもうまく動作します。

0

JSONをAJAX URLに送信しようとしていますが、手動で送信する文字列を作成しているようです。 (「O'lando」のように)あなたの要求での引用がありますならば、それは引用符ので、動作しないことができる

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

ようなもので終わるようにするには、単に、一緒に文字列を連結していますそうではありません。

JSONをどこかに送信するように構築する場合は、ブラウザで直接作成しないでください。 JSON.stringify機能は、JavaScriptオブジェクトを受け取り、すべてのことが、その後のWeb要求またはどこがそれに必要なことで使用することができ、純粋なJSON文字列、するために必要なエスケープ処理を扱う

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

:あなたのような何かをしたいですオブジェクトではなく文字列。

関連する問題