Javascript 处理'ä''ö''ü';在输入jQuery中

Javascript 处理'ä''ö''ü';在输入jQuery中,javascript,jquery,html,string,encoding,Javascript,Jquery,Html,String,Encoding,Hy, 我真的不明白为什么我的代码不起作用。 简短描述: 我自己实现了一个自动建议功能,比如jquery ui autosuggest。不幸的是,我不能使用jQueryUI,由于系统限制,我不得不坚持使用jQuery1.3.1 如果用户输入像‘ä’、‘ö’、‘ü’这样的字母,我尝试检查这些字母是否是这样插入的: if(inputFieldText.indexOf('ä')!=-1){ alert("detection"); } 我部署它的页面没有alert(),但是如果我在JSFIDL

Hy, 我真的不明白为什么我的代码不起作用。
简短描述:
我自己实现了一个自动建议功能,比如jquery ui autosuggest。不幸的是,我不能使用jQueryUI,由于系统限制,我不得不坚持使用jQuery1.3.1

如果用户输入像‘ä’、‘ö’、‘ü’这样的字母,我尝试检查这些字母是否是这样插入的:

if(inputFieldText.indexOf('ä')!=-1){
    alert("detection");
}
我部署它的页面没有
alert()
,但是如果我在JSFIDLE中运行它,它就可以正常工作。所有内容都放在Document ready块中,其他功能如.click()、.change()都可以正常工作

我也尝试过使用
encode()
方法,但这并不是一个很好的解决方法,也会给我带来一些错误


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

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

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

对于调试,您可以尝试将JS代码放入html文档的
标记中。那么它应该可以工作,因为编码保证是一样的。

使用而不是作为
。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");
});​

作为补充说明,您的JSFIDLE设置为使用jQuery 1.2.6,而不是您提到的1.3.1。

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

你的提琴对我不起作用,因为所选版本的jQuery没有
.on()
方法(当我将其更改为
.bind()
时它起作用):是的,我设置错了,也许很抱歉我会更正它,但这不是问题。我如何设置.js和html文件的编码?取决于你使用的编辑器。谷歌“编辑名称”+集合编码/字符集。就像我使用Geany一样,我会在谷歌上搜索“Geany集合编码”。否决票推理将非常有益,因为我将能够理解答案的错误。