关于JS一段小代码,火狐兼容性改造 那是因为IE和FF对对象的操作有区别你查看下手册就一切都清楚了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 知道window.event这个标志是代表什么的嘛?事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,而在Opera中则两者都支持呵呵,我就说这么一点,其他的,你自己查手册你就知道了 知道window.event这个标志是代表什么的嘛?事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,而在Opera中则两者都支持呵呵,我就说这么一点,其他的,你自己查手册你就知道了 我把var evt=window.event¦ ¦event 修改成 event.target 删除没有问题了 但是添加又添加不了了。这是为什么呢? <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>JavaScriptLab</title><style type="text/css"><!--body{margin-left:0px;margin-top:10px;margin-right:0px;margin-bottom:10px;}#div{margin-left:auto;margin-right:auto;width:76%;}#pbody{border:#88cee9 1px solid;padding:15px;}input{width:60px;border:#000000 1px solid;}--></style></head><body><div id="div"> <div id="pbody"> <script type="text/javascript"> function check(){ var arr = new Array(); arr[0]=document.getElementById("tex1").value; arr[1]=document.getElementById("tex2").value; arr[2]=document.getElementById("tex3").value; arr[3]=document.getElementById("tex4").value; arr[4]=document.getElementById("tex5").value; arr[5]=document.getElementById("tex6").value; arr[6]=document.getElementById("tex7").value; var str=""; var k=0; for(var i=0;i<arr.length;i++){ if(arr[i].length>6) str=arr[i]; if(k==0) k=i; } str=str.replace(/ /g,"-"); str=str.replace(/[\s-,,]/g,"-"); var tex=str.split("-"); for(var i=0;i<tex.length;i++){ if(i<arr.length){ var num=k+i; document.getElementById("tex"+num).value=tex[i]; } } } </script> <div id="content"> <input type="text" id="tex1" name="tex1" onchange="return check()" /> - <input type="text" id="tex2" name="tex2" onchange="return check()" /> - <input type="text" id="tex3" name="tex3" onchange="return check()" /> - <input type="text" id="tex4" name="tex4" onchange="return check()" /> - <input type="text" id="tex5" name="tex5" onchange="return check()" /> - <input type="text" id="tex6" name="tex6" onchange="return check()" /> - <input type="text" id="tex7" name="tex7" onchange="return check()" /> </div> </div></div></body></html>大概就这样了,代码你自己再优化一下 //JS代码改一下,上面的有点小问题function check(){ var arr = new Array(); arr[0]=document.getElementById("tex1").value; arr[1]=document.getElementById("tex2").value; arr[2]=document.getElementById("tex3").value; arr[3]=document.getElementById("tex4").value; arr[4]=document.getElementById("tex5").value; arr[5]=document.getElementById("tex6").value; arr[6]=document.getElementById("tex7").value; var str=""; var k=0; for(var i=0;i<arr.length;i++){ if(arr[i].length>6){ str=arr[i]; if(k==0) k=i+1; } } if(str.length>6){ str=str.replace(/ /g,"-"); str=str.replace(/[\s-,,]/g,"-"); var tex=str.split("-"); for(var i=0;i<tex.length;i++){ if(i<arr.length){ var num=k+i; document.getElementById("tex"+num).value=tex[i]; } } }} //再改function check(){ var arr = new Array(); arr[0]=document.getElementById("tex1").value; arr[1]=document.getElementById("tex2").value; arr[2]=document.getElementById("tex3").value; arr[3]=document.getElementById("tex4").value; arr[4]=document.getElementById("tex5").value; arr[5]=document.getElementById("tex6").value; arr[6]=document.getElementById("tex7").value; var str=""; var k=0; for(var i=0;i<arr.length;i++){ if(arr[i].length>6){ str=arr[i]; if(k==0) k=i+1; } } if(str.length>6){ str=str.replace(/ /g,"-"); str=str.replace(/[\s-,,]/g,"-"); var tex=str.split("-"); for(var i=0;i<tex.length;i++){ var num=k+i; if(num<=arr.length) document.getElementById("tex"+num).value=tex[i]; } }} http://blog.csdn.net/chinmo/archive/2008/02/17/2100311.aspx看看这个吧!! luxu001207 谢谢,但在火狐下不兼容 我叫你看看这兼容的问题http://blog.csdn.net/chinmo/archive/2008/02/17/2100311.aspx chinmo 你别着急,文章我看了。现在的问题 好像出现在var content=clipboardData.getData("Text"); 这句话 up 对karso 的认真学习态度 支持一下 我是个初学者 clipboardData.getData 我查了一下 这个函数火狐好像真不兼容。也没有什么可代替的 <form name="form1"> <p style="font-size:12px"> 可以用以下数字串测试(支持的间隔为中英方空格,逗号,连接号): <br> ANFUHD-2GSVKB-8L5BS7-WND200-B6RV1R-AQLJ53-LQ2JPD <br> ANFUHD-2GSVKB-8L5BS7-WND200-B6RV1R-AQLJ53-LQ2JPD <br> ANFUHD 2GSVKB 8L5BS7 WND200 B6RV1R AQLJ53 LQ2JPD <br> ANFUHD 2GSVKB 8L5BS7 WND200 B6RV1R AQLJ53 LQ2JPD <br> ANFUHD,2GSVKB,8L5BS7,WND200,B6RV1R,AQLJ53,LQ2JPD <br> ANFUHD,2GSVKB,8L5BS7,WND200,B6RV1R,AQLJ53,LQ2JPD <br> 使用说明:功能仿照一些软件输入序列号的功能,在第一格粘贴序列号自动添加全部内容, <br> 进行对第一格选择操作可以全部清空全部内容,从最后一格开始按退格键可以从后到前依次清除内容。 </p> <table width="20%" border="1" cellspacing="0" cellpadding="0"> <tr> <td> <input type="text" name="id1" maxlength="4" onpaste="filltxt();return false;" onfocus="toend()" onkeypress="var evt=window.event ¦ ¦ event; checkLength(this,evt);" > </td> <td> <input type="text" name="id2" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id1.focus();}" onfocus="toend()" > </td> <td> <input type="text" name="id3" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id2.focus();}" onfocus="toend()" > </td> <td> <input type="text" name="id4" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id3.focus();}" onfocus="toend()" > </td> </tr> </table> <script language="javascript"> var blox = new Array(); //列出要用到的文本框 blox[0]=form1.id1 blox[1]=form1.id2 blox[2]=form1.id3 blox[3]=form1.id4 //blox[4]=form1.id1 function filltxt() { var content = clipboardData.getData("Text"); content=content.replace(/ /g," "); content=content.replace(/-/g," "); content=content.replace(/-/g," "); content=content.replace(/,/g," "); content=content.replace(/,/g," "); var txt=content.split(" "); for(var i=0;i <txt.length;i++) { if(txt[i]){blox[i].value=txt[i]}; } } function toend() { var e = event.srcElement; var r =e.createTextRange(); r.moveStart("character",e.value.length); r.collapse(true); r.select(); } </from> var content=clipboardData.getData("Text"); 在IE是没有问题的 好像是剪切板的意思 你给的代码全不?怎么在IE下都有错啊!IE下复制东西进去就有错而且批量删除都不能删除 event.keyCode还有你这个在FF下也是不兼容的 刚才那个不是完整的,批量删除已经可以暂时不用考虑的现在就是复制功能,因为还有其他功能怕看的乱,所以下面的代码就是出问题复制的代码:<form name="form1"> <p style="font-size:12px"> 可以用以下数字串测试(支持的间隔为中英方空格,逗号,连接号): <br> ANFUHD-2GSVKB-8L5BS7-WND200<br> ANFUHD-2GSVKB-8L5BS7-WND200<br> ANFUHD 2GSVKB 8L5BS7 WND200 <br> ANFUHD 2GSVKB 8L5BS7 WND200<br> ANFUHD,2GSVKB,8L5BS7,WND200<br> ANFUHD,2GSVKB,8L5BS7,WND200<br> 使用说明:功能仿照一些软件输入序列号的功能,在第一格粘贴序列号自动添加全部内容, <br> 进行对第一格选择操作可以全部清空全部内容,从最后一格开始按退格键可以从后到前依次清除内容。 </p> <table width="20%" border="1" cellspacing="0" cellpadding="0"> <tr> <td> <input type="text" name="id1" maxlength="4" onpaste="filltxt();return false;" onfocus="toend()"> </td> <td> <input type="text" name="id2" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id1.focus();}" onfocus="toend()" > </td> <td> <input type="text" name="id3" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id2.focus();}" onfocus="toend()" > </td> <td> <input type="text" name="id4" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id3.focus();}" onfocus="toend()" > </td> </tr> </table> <script language="javascript"> var blox = new Array(); //列出要用到的文本框 blox[0]=form1.id1 blox[1]=form1.id2 blox[2]=form1.id3 blox[3]=form1.id4 //blox[4]=form1.id1 function filltxt() { var content = clipboardData.getData("Text"); content=content.replace(/ /g," "); content=content.replace(/-/g," "); content=content.replace(/-/g," "); content=content.replace(/,/g," "); content=content.replace(/,/g," "); var txt=content.split(" "); for(var i=0;i <txt.length;i++) { if(txt[i]){blox[i].value=txt[i]}; } } function toend() { var e = event.srcElement; var r =e.createTextRange(); r.moveStart("character",e.value.length); r.collapse(true); r.select(); } </from> 死了 5555 http://www.firefox.net.cn/newforum/viewtopic.php?p=26970 官方网站的说法 不知道真的假的? 好,太感谢chinmo了,我现在都有点绝望了看了那个文章说的,你给了我信心<body> <form name="form1"><p style="font-size:12px">可以用以下数字串测试(支持的间隔为中英方空格,逗号,连接号):<br>ANFUHD-2GSVKB-8L5BS7-WND200<br>ANFUHD-2GSVKB-8L5BS7-WND200<br>ANFUHD 2GSVKB 8L5BS7 WND200 <br>ANFUHD 2GSVKB 8L5BS7 WND200<br>ANFUHD,2GSVKB,8L5BS7,WND200<br>ANFUHD,2GSVKB,8L5BS7,WND200<br>使用说明:本页面功能仿照一些软件输入序列号的功能,在第一格粘贴序列号自动添加全部内容,<br>进行对第一格选择操作可以全部清空全部内容,从最后一格开始按退格键可以从后到前依次清除内容。</p><table width="20%" border="1" cellspacing="0" cellpadding="0"> <tr> <td><input type="text" name="id1" maxlength="4" onpaste="filltxt();" onselect="cleartxt();" onfocus="toend()" ></td> <td><input type="text" name="id2" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id1.focus();}" onfocus="toend()" ></td> <td><input type="text" name="id3" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id2.focus();}" onfocus="toend()"></td> <td><input type="text" name="id4" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id3.focus();}" onfocus="toend()" ></td> </tr> </table> <script language="javascript"> var blox = new Array(); //列出要用到的文本框blox[0]=form1.id1blox[1]=form1.id2blox[2]=form1.id3blox[3]=form1.id4//blox[4]=form1.id1 function filltxt() { var content = clipboardData.getData("Text"); content=content.replace(/ /g," "); content=content.replace(/-/g," "); content=content.replace(/-/g," "); content=content.replace(/,/g," "); content=content.replace(/,/g," "); var txt=content.split(" "); for(var i=0;i<txt.length;i++) { if(txt[i]){blox[i].value=txt[i]}; } } function cleartxt() { for(var i=0;i<blox.length;i++) { blox[i].value=""; } } function toend() { var e = event.srcElement; var r =e.createTextRange(); r.moveStart("character",e.value.length); r.collapse(true); r.select(); } </script> </form></body> 要不你就在第一个窗口上做手脚就是当点击鼠标时弹出一个输入窗口,这里就是用这方法替代剪切板 意思就是把var content = clipboardData.getData("Text");这里的这个换成是输入框的形式,呵呵,能理解我的意思吧? 输入窗口方法: window.prompt参数,有两个, 第一个参数,显示提示输入框的信息. 第二个参数,用于显示输入框的默认值. 返回,用户输入的值. <script> var str = window.prompt("请输入密码","password") alert(str); </script> window.prompt这个函数你用过没啊???JS的你去试一下这个效果你获取会明白我的意思就是利用这个函数获取用户输入的序列号代替剪切板你注意看了没?var str = window.prompt("请输入序列号","password") var content = clipboardData.getData("Text");嘿嘿看看这个只是差别什么?一个是自动获取的,一个是复制到输入框里的 window.prompt 这个的确不这么用,刚在网上查了一下,是弹出一个窗体的效果.这样做反而给用户添加了麻烦 不是很理想的效果.我也一直在想相关兼容性的问题,暂时真没什么好办法,认命了 不违背啊你复制,粘贴到这个弹出的对话框,然后用变量获得这个对话框的值,就形成了啊很简单的啊实际上这部分就是成了 var content =window.prompt("请输入序列号","password"); content=content.replace(/ /g," "); content=content.replace(/-/g," "); content=content.replace(/-/g," "); content=content.replace(/,/g," "); content=content.replace(/,/g," "); var txt=content.split(" ");明白了吧??? 我明白你的意思,但 firefox下 window.prompt 不可行 兼容不好 karso 不积跬步,无以至千里 等 级: 发表于:2008-02-18 13:39:1947楼 得分:0 我明白你的意思,但 firefox下 window.prompt 不可行 兼容不好 ============================================================FF下prompt怎么不好啦? 汗!你弄成兼容的就可以了!只是告诉你有prompt这函数! 呵呵 两位大哥别急,刚才测试了一下window.prompt在ff是支持的 但在我写的程序里不知道 我正在想办法解决 JQUERY TABLE 隔行换色的问题 让人蛋疼的百分比相对定位问题,求高人解答 如何用JS实现点击没有ID没有NAME的按钮呢? 如何利用联合数组向列表添加元素的呢?~` 关于弹出窗口和屏蔽浏览器地址栏的一些问题 正则表达式 /[^0-9^a-z]/g,为什么对^不好用? 后台能得到CheckBox的值,但前台用javascript怎么就获得不到正确的值了 一个200分的问题,但我只有100分 求 javascript 字符替换 函数 登陆页面验证后怎么同时通知登陆页面及其父页面啊 求网页上文本框ctrl+z为什么无效? 请图片效果:N张图片,顺序改变。。。含图片索引链接
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JavaScriptLab</title>
<style type="text/css">
<!--
body{margin-left:0px;margin-top:10px;margin-right:0px;margin-bottom:10px;}
#div{margin-left:auto;margin-right:auto;width:76%;}
#pbody{border:#88cee9 1px solid;padding:15px;}
input{width:60px;border:#000000 1px solid;}
-->
</style>
</head>
<body>
<div id="div">
<div id="pbody">
<script type="text/javascript">
function check(){
var arr = new Array();
arr[0]=document.getElementById("tex1").value;
arr[1]=document.getElementById("tex2").value;
arr[2]=document.getElementById("tex3").value;
arr[3]=document.getElementById("tex4").value;
arr[4]=document.getElementById("tex5").value;
arr[5]=document.getElementById("tex6").value;
arr[6]=document.getElementById("tex7").value;
var str="";
var k=0;
for(var i=0;i<arr.length;i++){
if(arr[i].length>6)
str=arr[i];
if(k==0)
k=i;
}
str=str.replace(/ /g,"-");
str=str.replace(/[\s-,,]/g,"-");
var tex=str.split("-");
for(var i=0;i<tex.length;i++){
if(i<arr.length){
var num=k+i;
document.getElementById("tex"+num).value=tex[i];
}
}
}
</script>
<div id="content">
<input type="text" id="tex1" name="tex1" onchange="return check()" />
-
<input type="text" id="tex2" name="tex2" onchange="return check()" />
-
<input type="text" id="tex3" name="tex3" onchange="return check()" />
-
<input type="text" id="tex4" name="tex4" onchange="return check()" />
-
<input type="text" id="tex5" name="tex5" onchange="return check()" />
-
<input type="text" id="tex6" name="tex6" onchange="return check()" />
-
<input type="text" id="tex7" name="tex7" onchange="return check()" />
</div>
</div>
</div>
</body>
</html>大概就这样了,代码你自己再优化一下
//JS代码改一下,上面的有点小问题
function check(){
var arr = new Array();
arr[0]=document.getElementById("tex1").value;
arr[1]=document.getElementById("tex2").value;
arr[2]=document.getElementById("tex3").value;
arr[3]=document.getElementById("tex4").value;
arr[4]=document.getElementById("tex5").value;
arr[5]=document.getElementById("tex6").value;
arr[6]=document.getElementById("tex7").value;
var str="";
var k=0;
for(var i=0;i<arr.length;i++){
if(arr[i].length>6){
str=arr[i];
if(k==0)
k=i+1;
}
}
if(str.length>6){
str=str.replace(/ /g,"-");
str=str.replace(/[\s-,,]/g,"-");
var tex=str.split("-");
for(var i=0;i<tex.length;i++){
if(i<arr.length){
var num=k+i;
document.getElementById("tex"+num).value=tex[i];
}
}
}
}
//再改
function check(){
var arr = new Array();
arr[0]=document.getElementById("tex1").value;
arr[1]=document.getElementById("tex2").value;
arr[2]=document.getElementById("tex3").value;
arr[3]=document.getElementById("tex4").value;
arr[4]=document.getElementById("tex5").value;
arr[5]=document.getElementById("tex6").value;
arr[6]=document.getElementById("tex7").value;
var str="";
var k=0;
for(var i=0;i<arr.length;i++){
if(arr[i].length>6){
str=arr[i];
if(k==0)
k=i+1;
}
}
if(str.length>6){
str=str.replace(/ /g,"-");
str=str.replace(/[\s-,,]/g,"-");
var tex=str.split("-");
for(var i=0;i<tex.length;i++){
var num=k+i;
if(num<=arr.length)
document.getElementById("tex"+num).value=tex[i];
}
}
}
看看这个吧!!
http://blog.csdn.net/chinmo/archive/2008/02/17/2100311.aspx
<p style="font-size:12px">
可以用以下数字串测试(支持的间隔为中英方空格,逗号,连接号): <br>
ANFUHD-2GSVKB-8L5BS7-WND200-B6RV1R-AQLJ53-LQ2JPD <br>
ANFUHD-2GSVKB-8L5BS7-WND200-B6RV1R-AQLJ53-LQ2JPD <br>
ANFUHD 2GSVKB 8L5BS7 WND200 B6RV1R AQLJ53 LQ2JPD <br>
ANFUHD 2GSVKB 8L5BS7 WND200 B6RV1R AQLJ53 LQ2JPD <br>
ANFUHD,2GSVKB,8L5BS7,WND200,B6RV1R,AQLJ53,LQ2JPD <br>
ANFUHD,2GSVKB,8L5BS7,WND200,B6RV1R,AQLJ53,LQ2JPD <br>
使用说明:功能仿照一些软件输入序列号的功能,在第一格粘贴序列号自动添加全部内容, <br> 进行对第一格选择操作可以全部清空全部内容,从最后一格开始按退格键可以从后到前依次清除内容。
</p>
<table width="20%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> <input type="text" name="id1" maxlength="4" onpaste="filltxt();return false;" onfocus="toend()" onkeypress="var evt=window.event ¦ ¦ event; checkLength(this,evt);" > </td>
<td> <input type="text" name="id2" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id1.focus();}" onfocus="toend()" > </td>
<td> <input type="text" name="id3" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id2.focus();}" onfocus="toend()" > </td>
<td> <input type="text" name="id4" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id3.focus();}" onfocus="toend()" > </td>
</tr>
</table>
<script language="javascript">
var blox = new Array(); //列出要用到的文本框
blox[0]=form1.id1
blox[1]=form1.id2
blox[2]=form1.id3
blox[3]=form1.id4
//blox[4]=form1.id1
function filltxt()
{
var content = clipboardData.getData("Text");
content=content.replace(/ /g," ");
content=content.replace(/-/g," ");
content=content.replace(/-/g," ");
content=content.replace(/,/g," ");
content=content.replace(/,/g," ");
var txt=content.split(" ");
for(var i=0;i <txt.length;i++)
{
if(txt[i]){blox[i].value=txt[i]};
}
}
function toend()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</from>
怎么在IE下都有错啊!IE下复制东西进去就有错而且批量删除都不能删除
还有你这个在FF下也是不兼容的
<form name="form1">
<p style="font-size:12px">
可以用以下数字串测试(支持的间隔为中英方空格,逗号,连接号): <br>
ANFUHD-2GSVKB-8L5BS7-WND200<br>
ANFUHD-2GSVKB-8L5BS7-WND200<br>
ANFUHD 2GSVKB 8L5BS7 WND200 <br>
ANFUHD 2GSVKB 8L5BS7 WND200<br>
ANFUHD,2GSVKB,8L5BS7,WND200<br>
ANFUHD,2GSVKB,8L5BS7,WND200<br>
使用说明:功能仿照一些软件输入序列号的功能,在第一格粘贴序列号自动添加全部内容, <br> 进行对第一格选择操作可以全部清空全部内容,从最后一格开始按退格键可以从后到前依次清除内容。
</p>
<table width="20%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> <input type="text" name="id1" maxlength="4" onpaste="filltxt();return false;" onfocus="toend()"> </td>
<td> <input type="text" name="id2" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id1.focus();}" onfocus="toend()" > </td>
<td> <input type="text" name="id3" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id2.focus();}" onfocus="toend()" > </td>
<td> <input type="text" name="id4" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id3.focus();}" onfocus="toend()" > </td>
</tr>
</table>
<script language="javascript">
var blox = new Array(); //列出要用到的文本框
blox[0]=form1.id1
blox[1]=form1.id2
blox[2]=form1.id3
blox[3]=form1.id4
//blox[4]=form1.id1
function filltxt()
{
var content = clipboardData.getData("Text");
content=content.replace(/ /g," ");
content=content.replace(/-/g," ");
content=content.replace(/-/g," ");
content=content.replace(/,/g," ");
content=content.replace(/,/g," ");
var txt=content.split(" ");
for(var i=0;i <txt.length;i++)
{
if(txt[i]){blox[i].value=txt[i]};
}
}
function toend()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</from>
<body>
<form name="form1">
<p style="font-size:12px">
可以用以下数字串测试(支持的间隔为中英方空格,逗号,连接号):<br>
ANFUHD-2GSVKB-8L5BS7-WND200<br>
ANFUHD-2GSVKB-8L5BS7-WND200<br>
ANFUHD 2GSVKB 8L5BS7 WND200 <br>
ANFUHD 2GSVKB 8L5BS7 WND200<br>
ANFUHD,2GSVKB,8L5BS7,WND200<br>
ANFUHD,2GSVKB,8L5BS7,WND200<br>
使用说明:本页面功能仿照一些软件输入序列号的功能,在第一格粘贴序列号自动添加全部内容,<br>进行对第一格选择操作可以全部清空全部内容,从最后一格开始按退格键可以从后到前依次清除内容。
</p>
<table width="20%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><input type="text" name="id1" maxlength="4" onpaste="filltxt();" onselect="cleartxt();" onfocus="toend()" ></td>
<td><input type="text" name="id2" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id1.focus();}" onfocus="toend()" ></td>
<td><input type="text" name="id3" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id2.focus();}" onfocus="toend()"></td>
<td><input type="text" name="id4" maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id3.focus();}" onfocus="toend()" ></td>
</tr>
</table>
<script language="javascript">
var blox = new Array(); //列出要用到的文本框
blox[0]=form1.id1
blox[1]=form1.id2
blox[2]=form1.id3
blox[3]=form1.id4
//blox[4]=form1.id1 function filltxt()
{
var content = clipboardData.getData("Text");
content=content.replace(/ /g," ");
content=content.replace(/-/g," ");
content=content.replace(/-/g," ");
content=content.replace(/,/g," ");
content=content.replace(/,/g," ");
var txt=content.split(" ");
for(var i=0;i<txt.length;i++)
{
if(txt[i]){blox[i].value=txt[i]};
}
}
function cleartxt()
{
for(var i=0;i<blox.length;i++)
{
blox[i].value="";
}
}
function toend()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
</form>
</body>
就是当点击鼠标时弹出一个输入窗口,这里就是用这方法替代剪切板
意思就是把var content = clipboardData.getData("Text");
这里的这个换成是输入框的形式,呵呵,能理解我的意思吧?
输入窗口方法:
window.prompt参数,有两个,
第一个参数,显示提示输入框的信息.
第二个参数,用于显示输入框的默认值.
返回,用户输入的值.
<script>
var str = window.prompt("请输入密码","password")
alert(str);
</script>
这个函数你用过没啊???
JS的
你去试一下这个效果你获取会明白我的意思就是利用这个函数获取用户输入的序列号代替剪切板
你注意看了没?
var str = window.prompt("请输入序列号","password")
var content = clipboardData.getData("Text");嘿嘿看看这个只是差别什么?一个是自动获取的,一个是复制到输入框里的
你复制,粘贴到这个弹出的对话框,然后用变量获得这个对话框的值,就形成了啊
很简单的啊
实际上这部分就是成了
var content =window.prompt("请输入序列号","password");
content=content.replace(/ /g," ");
content=content.replace(/-/g," ");
content=content.replace(/-/g," ");
content=content.replace(/,/g," ");
content=content.replace(/,/g," ");
var txt=content.split(" ");
明白了吧???
不积跬步,无以至千里
等 级:
发表于:2008-02-18 13:39:1947楼 得分:0
我明白你的意思,但 firefox下 window.prompt 不可行 兼容不好
============================================================FF下prompt怎么不好啦?
只是告诉你有prompt这函数!