在一个input[type=text]中的£。

3

我有一些jQuery设置了一个input[type=text]的值,如下所示:

if(theVal=="EPC/Floorplan"){
    $('#s3').val("£100.00").attr("disabled","disabled");
    $('.priceUpdate button').hide();
}else if(theVal=="EPC"){
    $('#s3').val("£75.00").attr("disabled","disabled");
    $('.priceUpdate button').hide();
}else{
    $('#s3').val("£0.00").removeAttr("disabled");
    $('.priceUpdate button').show();
}

然而,输入看起来像这样:

,涉及编程内容,HTML标签保留。

Input with £

我还有以下元标记:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

这是相关网站。请在下拉菜单中选择任意选项进行查看。

尝试模仿您的内容类型,我的代码可以正常运行:http://jsfiddle.net/ZsHzc/6/ - Jivings
你确定你的服务器也提供UTF-8编码的文件吗?在元标签中声明只是一个提示。 - m90
@Jivings - 参见 antyrats 的回答 - jsfiddle 将会使用 HTML 页面编码的 JS。 - rickyduck
@m90 - 也看看antyrats的答案,你是对的。 - rickyduck
3个回答

2
尝试向包含的脚本添加 charset 属性:
<script src="custom.js" type="text/javascript" charset="utf-8"></script>

1

使用Unicode:

\u00A3

在你的例子中:

if(theVal=="EPC/Floorplan"){
    $('#s3').val("\u00A3" + "100.00").attr("disabled","disabled");
    $('.priceUpdate button').hide();
}else if(theVal=="EPC"){
    $('#s3').val("\u00A3" + "75.00").attr("disabled","disabled");
    $('.priceUpdate button').hide();
}else{
    $('#s3').val("\u00A3" + "0.00").removeAttr("disabled");
    $('.priceUpdate button').show();
}

这个也完美地工作,但是我会接受antyrats的答案,因为它更加“全球化”,避免了我不得不替换每个£实例的麻烦。 - rickyduck

1

您的服务器已经提供了一个设置为ISO-8859-1编码的Content-Type头。如果服务器本身提供这个头部,浏览器将只考虑您的<meta>元素。

这是Firebug跟踪的相关部分:

HTTP/1.1 200 OK
Date: Wed, 14 Mar 2012 14:19:16 GMT
Server: Apache/2.2.3 (Red Hat)
X-Powered-By: PHP/5.2.17
Content-Type: text/html; charset=ISO-8859-1

尝试配置您的服务器(或服务器端代码),以便它设置UTF-8内容编码。


另一种完全可行的答案,但我不希望与使用ISO-8859-1的共享服务器上的其他站点发生冲突。 - rickyduck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接