使用js脚本如何进行客户端验证时出现乱码怎么办?

      一般的aspx页面中的控件需要进行验证,比如说必须输入时间类型,必须是非负整数等等.
为了统一,我将函数统一下在了Validate.js文件里.这样的话,页面再需要验证时只需要调用.js里的函数就可以了.
    
      在aspx页面上使用js脚本,需要增加代码:

None.gif <script language="javascript" src="Script/Validate.js"></script>
None.gif


这样就可以调用js中的函数了.
Validate.js的函数片段:

ExpandedBlockStart.gif/*去掉首尾空格*/
None.gifString.prototype.Trim 
= function()
ExpandedBlockStart.gif
{
InBlock.gif    
var str;
InBlock.gif    str 
= this.replace(/(^/s*)|(/s*$)/g, "");
InBlock.gif    
return str;
ExpandedBlockEnd.gif}

None.gif
ExpandedBlockStart.gif
/*是否为非负整数:*/ 
None.gif
function IsInt(obj)
ExpandedBlockStart.gif
{
InBlock.gif    
var str=obj.value;
InBlock.gif    str
=str.Trim();
InBlock.gif    
if(/^/d+$/.test(str)==false)
ExpandedSubBlockStart.gif        
{
InBlock.gif            alert('/u8BF7/u8F93/u5165/u975E/u8D1F/u6574/u6570'); 
InBlock.gif            obj.value
="";
InBlock.gif            obj.focus();
ExpandedSubBlockEnd.gif        }

ExpandedBlockEnd.gif }


假设需要myTextBox失去焦点时调用Validate.js的IsInt(obj)函数:

None.gif<asp:textbox id="myTextBox" onblur="IsInt(this);" runat="server"></asp:textbox>

这样一般就可以了,可是偶这里却是当验证无法通过时,出现乱码:

检查web.config文件下的<globalization >块.

None.gif<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"  />

没有问题,再看页面部分:

None.gif<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8">

也没有问题,晕@#!@$
还好公司有高手帮忙,整了一个"中文编码批量转换工具(.wsf文件)"使汉字转换为Unicode字符.
居然就可以了.
使用:
为了方便,可以将1.wsf文件放桌面上,同时放一个2.txt文件用来承载汉字.
开始工作:
A. 用鼠标把2.txt拉进1.wsf里,这个时候会弹出一个文本框,点击确定.
B. 接下来再看2.txt,则已经转换完毕.
    假设汉字为: "请输入非负整数"
    则转化之后为:     &#x8BF7;&#x8F93;&#x5165;&#x975E;&#x8D1F;&#x6574;&#x6570;
C.接下来将&#x 替换为/u   再去掉分号.
   得到:    /u8BF7/u8F93/u5165/u975E/u8D1F/u6574/u6570

本来好好的 alert('请输入非负整数');
最后更改为: alert('/u8BF7/u8F93/u5165/u975E/u8D1F/u6574/u6570');
这样再弹出是就不会是乱码,而是"请输入非负整数".

点击这里进行工具下载 :中文编码转换工具
文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有
阅读更多
换一批

没有更多推荐了,返回首页