在输入jQuery中处理'ä','ö','ü'

时间:2012-02-16 10:33:28

标签: javascript jquery html string encoding

HY, 我真的不明白为什么我的代码不起作用。
简短说明:
我自己实现了一个自动建议功能,比如jquery-ui autosuggest。不幸的是,我不能使用jQuery UI,由于系统限制,我不得不坚持使用jQuery 1.3.1。

如果用户输入“ä”,“ö”,“ü”等字母,我会尝试检查这些字母是否插入如下:

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

我部署此页面的页面不是alert(),但如果我在jsfiddle http://jsfiddle.net/nyDBB/4/中运行它,它就可以正常工作。所有内容都放在Document ready块中,其他功能如.click(),。change()也能正常工作。

我也试过使用encode()方法,但这不是一个好方法,也给我一些错误。

所以我的建议是在页面上设置编码有问题,但有人知道如何克服这个问题吗?

3 个答案:

答案 0 :(得分:5)

确保所有内容都是UTF-8(或其他任何编码)。

这意味着 .js和.htm 文件必须具有相同的字符集。

对于调试,您可以尝试将JS代码放入html文档到<script>标记中。然后它应该工作,因为编码保证相同。

答案 1 :(得分:1)

确保所有源文件都是UTF-8(尤其是.js文件)。这意味着用notepad ++打开它们并检查源文件的编码是否为UTF-8(有时eclipse不会使用它,这会导致很多问题)。

答案 2 :(得分:-2)

使用.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。