2012-02-16 15 views
3

Hy、 私のコードがうまくいかない理由は分かりません。
短い説明:私はオートを実装している
はjqueryの-UIオートサジェストのように、自分で機能を示唆しています。残念ながらjQuery UIを使用することはできません。システムの制約のため、jQuery 1.3.1を使用しなければなりませんでした。入力jQueryの 'ä'、 'ö'、 'ü'の処理

ユーザーは、「A」のような文字を入力する「O」、「U」と私はそれらの文字がそうのように挿入されたかどうかを確認しようとした場合:

if(inputFieldText.indexOf('ä')!=-1){ 
    alert("detection"); 
} 

私は、これはalert()ない展開ページしかし、私はこれをjsfiddleで実行するとhttp://jsfiddle.net/nyDBB/4/うまく動作します。すべてがDocument readyブロック内に置かれ、.click()、。change()などの他の機能は正常に動作します。

私はまたencode()メソッドを使用しようとしましたが、これは実際に回避するには良い方法ではなく、また特定のエラーをもたらします。

だから、私の提案は、ページ上のエンコーディングを設定することに問題があるということですが、誰もがこの問題を乗り越えるために方法を知っていますか?

+0

jQueryの選択されたバージョンには '.on()'メソッドがありません(これを '.bind()'に変更したので動作しませんでした:http:// jsfiddle。 net/nnnnnn/nyDBB/3/ – nnnnnn

+0

ええ、私は間違っているかもしれないが、申し訳ありませんが修正しますが、それは問題ではありません –

答えて

5

は、すべてがUTF-8(または実際には他のエンコーディング)であることを確認します。

つまり、.jsと.htmファイルの両方が同じ文字セットであるである必要があります。

デバッグの場合、JSコードをhtml文書に入れて<script>タグに入れてみてください。それで、エンコードは同じであるので、うまくいくはずです。

+0

.jsとhtmlファイルのエンコーディングを設定するにはどうすればいいですか? –

+0

どのエディタを使用するかによって異なります。あなたのエディタの名前 "+エンコーディング/文字セットを設定します。私はGeanyを使うのと同じように、私は" Geany set encoding "をgoogleにします。 –

-2

.on()の代わりに.live()を使用して、.onを1.7に追加しました。制限が変更された場合は.delegate()を使用することができます。.live参照を参照して、それぞれを使用するのが最善であるかどうかを確認してください。

$('input').live("input change", function(e) { 
    var text = e.target.value; 
    console.log(text) 

    if(text.indexOf('ä') != -1) 
     alert("detection"); 
});​ 

jsfiddleは、前述のように1.3.1ではなくjQuery 1.2.6を使用するように設定されています。

+0

答えが間違っていることを理解できるようになります。 –

1

は、すべてのソースファイルがUTF-8(特にの.jsファイル)にあることを確認してください。これは、notepad ++でそれらを開いて、ソースファイルのエンコーディングがUTF-8であることを確認することを意味します(eclipseはそれを使用しないため、多くの問題が発生します)。

関連する問題