<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language=JavaScript>
String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); }
function $$(id){return document.getElementById(id);}
function AJump(e,obj,str){var e = window.event || e;var ekey = e.keyCode ? e.keyCode : e.which;if(obj.value.length==str&&obj.nextSibling.nextSibling!=null&&obj.nextSibling.nextSibling.type=="text"){obj.nextSibling.nextSibling.select();}
if(obj.previousSibling!=null){if(obj.value.length==0&&ekey==8&&obj.previousSibling.previousSibling!=null){obj.previousSibling.previousSibling.select();}}}
function popaste(){var c=window.clipboardData.getData('text'); c=c.trim();
carray=c.split(" ");
$$("postcode").value=carray[0];
if (carray[1]!=null){$$("postcode2").value=carray[1];}
}
function chkpo1(obj)
{obj.value=obj.value.trim();obj.value=obj.value.toUpperCase();
if(obj.value!="")
{ var reg=/^GIR|[A-PR-UWYZ][0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW]$/;
if(!reg.test(obj.value))
{
alert("邮编前半部分不正确!");
obj.focus();obj.className="onErr";return false;
}else
{ obj.className="";
}
}
}
function chkpo2(obj)
{obj.value=obj.value.trim();obj.value=obj.value.toUpperCase();
if(obj.value!="")
{ var reg=/^0AA|[0-9][ABD-HJLNP-UW-Z]{2}$/;
if(!reg.test(obj.value))
{
alert("邮编后半部分不正确!");
obj.focus();obj.className="onErr";return false;
}else
{ obj.className="";
}
}
}
</script>
</head>
<body> M15 5FX
<input name="postcode" type="text" id="postcode" value="" size="4" onblur="chkpo1(this);" maxlength="4" onbeforepaste="popaste();" onkeyup="AJump(event,this,4);" /><input name="postcode2" type="text" id="postcode2" value="" size="4" onblur="chkpo2(this);" onkeyup="AJump(event,this,4)" maxlength="4">
</body>
</html>
1. 粘贴M15 5FX时,第一个输入框会莫名的加入一个M,变成M15M, 也就是加上第一输入框的第一字母, 如果在第二个输入框,也就是$$("postcode2").value=carray[1];后面加上$$("postcode2").focus,则会把M带入第二个输入框2. 函数AJump不起作用, 它的作用是第一个输入框输入4个字符后自动跳到第二个输入框,第二个输入框按backspace清除所有字符后自动跳到第一个输入框。困扰好几天了,请高手指导指导~~~
你注意到没有,就是还没有paste的时候,你拷贝的内容已经放进去了,你再paste的话其实是paste了两次,只不过第一个input的size是4,所以后面的15没出来
#2
function AJump(e, obj, str) {
var e = window.event || e;
var ekey = e.keyCode ? e.keyCode : e.which;
if (obj.value.length == str && obj.nextSibling != null && obj.nextSibling.type == "text") {
obj.nextSibling.select();
}
if (obj.previousSibling != null) {
if (obj.value.length == 0 && ekey == 8 && obj.previousSibling != null) {
obj.previousSibling.focus();
}
}
}
-----------------------------------
from:onbeforepaste="popaste();"
to :onpaste="popaste();"
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无h・文档</title>
<script language=JavaScript>
String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); }
function $$(id){return document.getElementById(id);}
function AJump(e,obj,str){var e = window.event || e;var ekey = e.keyCode ? e.keyCode : e.which;if(obj.value.length==str&&obj.nextSibling.nextSibling!=null&&obj.nextSibling.nextSibling.type=="text"){obj.nextSibling.nextSibling.select();}
if(obj.previousSibling!=null){if(obj.value.length==0&&ekey==8&&obj.previousSibling.previousSibling!=null){obj.previousSibling.previousSibling.select();}}}
function popaste(){var c=window.clipboardData.getData('text'); c=c.trim();
carray=c.split(" ");
$$("postcode").value=carray[0];
if (carray[1]!=null){$$("postcode2").value=carray[1];}
}
function chkpo1(obj)
{obj.value=obj.value.trim();obj.value=obj.value.toUpperCase();
if(obj.value!="")
{ var reg=/^GIR|[A-PR-UWYZ][0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW]$/;
if(!reg.test(obj.value))
{
alert("222!");
obj.focus();obj.className="onErr";return false;
}else
{ obj.className="";
}
}
}
function chkpo2(obj)
{obj.value=obj.value.trim();obj.value=obj.value.toUpperCase();
if(obj.value!="")
{ var reg=/^0AA|[0-9][ABD-HJLNP-UW-Z]{2}$/;
if(!reg.test(obj.value))
{
alert("111!");
obj.focus();obj.className="onErr";return false;
}else
{ obj.className="";
}
}
}
</script>
</head>
<body> M15 5FX
<input name="postcode" type="text" id="postcode" value="" size="4" onblur="chkpo1(this);" maxlength="4" onpaste="popaste();" onkeyup="AJump(event,this,4);" />
<input name="postcode2" type="text" id="postcode2" value="" size="4" onblur="chkpo2(this);" onkeyup="AJump(event,this,4)" maxlength="4">
</body>
</html>
<input name="postcode" type="text" id="postcode" value="" size="4" onblur="chkpo1(this);" maxlength="4" onpaste="popaste();" onkeyup="AJump(event,this,4);" /><!--insert blank--><input name="postcode2" type="text" id="postcode2" value="" size="4" onblur="chkpo2(this);" onkeyup="AJump(event,this,4)" maxlength="4">
</body>