Обработка 'ä', 'ö', 'ü' во входном jQuery - PullRequest
3 голосов
/ 16 февраля 2012

Хи, я не совсем понимаю, почему мой код не работает.
Краткое описание:
Я сам реализовал функцию автоматического предложения, например, jquery-ui autosuggest.К сожалению, я не могу использовать пользовательский интерфейс jQuery, и мне пришлось придерживаться jQuery 1.3.1 из-за системных ограничений.

Если пользователь вводит буквы типа «ä», «ö», «ü», и я пытаюсьпроверьте, были ли эти буквы вставлены следующим образом:

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

страница, на которой я развернул, не alert(), но если я запускаю ее в jsfiddle http://jsfiddle.net/nyDBB/4/, она работает нормально.Все находится в блоке Document ready, а другие функции, такие как .click (), change () работают нормально.

Я также пытался использовать encode() методы, но это не очень хороший способ обойти и также дает мне определенные ошибки.

Так что я предполагаю, что что-то не так сустановить кодировку на странице, но кто-нибудь знает, как решить эту проблему?

Ответы [ 3 ]

5 голосов
/ 16 февраля 2012

Убедитесь, что все в UTF-8 (или в любой другой кодировке).

Это означает, что и файл .js, и файл .htm должны иметь одинаковую кодировку.

Для отладки вы можете попробовать поместить код JS в HTML-документ в тег <script>.Тогда это должно сработать, поскольку кодирование гарантировано одинаково.

1 голос
/ 16 февраля 2012

Убедитесь, что все ваши исходные файлы находятся в UTF-8 (особенно файлы .js).Это значит открыть их с помощью notepad ++ и проверить, что кодировка исходных файлов - UTF-8 (иногда eclipse не использует это, и это вызывает много проблем).

0 голосов
/ 16 февраля 2012

Используйте .live () вместо .on () , так как .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, как вы упоминали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...