2012-02-16 4 views
3

Hy, 내 코드가 작동하지 않는 이유를 알 수 없습니다.
간단한 설명 :
jquery-ui autosuggest와 같은 자동 제안 기능을 직접 구현했습니다. 불행히도 나는 jQuery UI를 사용할 수 없으며 시스템 제한 때문에 jQuery 1.3.1을 고수해야했다.입력 jQuery에서 'ä', 'ö', 'ü'처리

사용자는 'A', 'O', 'U'와 같은 문자를 입력하고 나는 그 문자과 같이 삽입 된 여부를 확인하려고하면 :

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

내가이 배치 된 페이지 alert()하지 않는 하지만 이걸 jsfiddle에서 실행하면 http://jsfiddle.net/nyDBB/4/ 잘 동작합니다. 모든 것은 문서 준비 블록 안에 있고 .click(),. change() 같은 다른 기능은 잘 작동합니다.

나는 또한 encode() 방법을 사용하려고 시도했으나 실제로 해결할 좋은 방법이 아니며 특정 오류가 발생합니다.

내 제안은 페이지의 인코딩 설정에 문제가 있지만이 문제를 극복하는 방법을 알고 있습니까?

+0

선택한 jQuery 버전에'.bind()'(http : // jsfiddle)로 변경했을 때 효과가있는'.on()'메소드가 없기 때문에 피들이 나에게 적합하지 않았습니다. net/nnnnnn/nyDBB/3/ – nnnnnn

+0

네, 잘못 고치겠습니다. 죄송합니다. 문제를 해결할 것입니다. –

답변

5

모든 것이 UTF-8 (또는 다른 인코딩)인지 확인하십시오. 모두의 .js 및 .HTM 파일 수단

같은 캐릭터를 가져야한다.

디버그의 경우 JS 코드를 html 문서에 넣어 <script> 태그에 넣을 수 있습니다. 그런 다음 인코딩이 동일하게 보장되므로 제대로 작동합니다.

+0

.js 및 html 파일의 인코딩을 설정하는 방법은 무엇입니까? –

+0

사용하는 편집기에 따라 다릅니다 .Google ' 편집기의 이름 "+ 인코딩/문자 세트를 설정합니다 .Geany를 사용하는 것처럼"Geany set encoding "을 사용합니다. –

-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가 jQuery를 1.2.6를 사용하도록 설정했다, 당신은 언급되지 1.3.1로.

+0

답안에 무엇이 잘못되었는지 이해할 수 있기 때문에 아래 투표 추론이 큰 도움이됩니다. –

1

모든 소스 파일이 UTF-8 (특히 .js 파일)인지 확인하십시오. 즉, 메모장 ++로 열어서 소스 파일의 인코딩이 UTF-8인지 확인하는 것입니다 (때로는 이클립스가이 코드를 사용하지 않기 때문에 많은 문제가 발생합니다).

관련 문제