思路一:
window.onload = function(){
var ss = document.getElementsByTagName('input');
for ( obj in ss){
if (ss[obj].type=='text')
{AttachEvent("blur", ss[obj], add, ss[obj]);}
}
}
function AttachEvent(type, target, handler, owner)
{
var eventHandler = handler;
if(owner){/*在这里重新定义一个处理函数*/eventHander = function(e){handler.call(owner, e);}}
if(window.document.all)
target.attachEvent("on" + type, eventHander );
else
target.addEventListener(type, eventHander, false);
}
function add(e){
var target = e.srcElement || e.target;
if(this.val){
var L=target.getAttribute('maxlength');
if(L)
{if(L==1){if(this.val.match('[\一-\龥]+')){this.select();alert('值js判断汉字');return false;}}
if(getByteLen(this.val)>L){this.select();alert('字段超长,要求'+L+'字节长度');return false;}
}
}
}
function getByteLen(str) // JS 计算字符串的字节长度
{
var l=str.length;
var n=l;
for(var i=0;i<l;i++)
if(str.charCodeAt(i)<0||str.charCodeAt(i)>255)n++;
return n
}
描述
返回指定字符的 Unicode 编码。
语法
stringObj. charCodeAt( index )
charCodeAt 方法的语法组成如下:
部分 描述 stringObj 必选项。一个 String 对象或文字。 index 必选项。指定字符基于零的索引。
说明
如果在指定 index 处没有字符,则返回 NaN。下面的示例说明了 charCodeAt 方法的用法:
function charCodeAtTest(n){ var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var s; s = str.charCodeAt(n - 1); // 返回 Unicode 字符编码。 return(s);}
思路二:
function set(obj)
{
//obj.attachEvent('onblur', add); //在原先事件上添加
//obj.setAttribute('onblur',add); //会替代原有事件方法
//obj.οnfοcus=add; //等效obj.setAttribute('onfocus',add);
if(window.addEventListener)
{
//其它浏览器的事件代码: Mozilla, Netscape, Firefox
//添加的事件的顺序即执行顺序 //注意用 addEventListener 添加带on的事件,不用加on
obj.addEventListener('blur', add, false);
}
else
{
//IE 的事件代码 在原先事件上添加 add 方法
obj.attachEvent('onblur',add);
}
}