[转]求网页上文本框ctrl+z为什么无效2
例如 <input type=text onkeyup="bbb.value=this.value;"> <input type=text name=bbb>
第一个文本框就不能用ctrl+z进行撤消,而第二个文本框就可以正常进行撤消。正常来说文本框或textarea不加JS事件都能用ctrl+z进行撤消操作,但加了某些事件后就失效了,请教高手怎么在不取消JS事件的情况下让ctrl+z的撤消功能可操作?
问题点数:100 回复次数:29 显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showliz
清风
等级:
可用分等级:富农
总技术分:233
总技术分排名:54267
发表于:2008-01-05 15:39:341楼 得分:0
试过用
<input type=text onkeyup="bbb.value=this.value;" onkeypress="if (event.ctrlKey && event.keyCode==90){document.execCommand('Undo')}">
但ctrl+z仍然是不起作用。
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showbo
要学习了.....さようなら
等级:
可用分等级:富农
总技术分:43207
总技术分排名:210
3
3
发表于:2008-01-05 15:52:492楼 得分:10
换个处理函数试试,可能是keyup,keydown和ctrl+z有冲突
HTML code<input type=text name=bbb>
<input type=text onblur="bbb.value=this.value">
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showliz
清风
等级:
可用分等级:富农
总技术分:233
总技术分排名:54267
发表于:2008-01-05 16:13:473楼 得分:0
谢谢showbo,虽然改变了原事件的效果,但还是给我提供了另一种解决思路,还是希望有不破坏原效果的解决问题。
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showbo
要学习了.....さようなら
等级:
可用分等级:富农
总技术分:43207
总技术分排名:210
3
3
发表于:2008-01-05 17:03:234楼 得分:0
经过实验,你原来的代码在ff下可以使用ctrl+z返回
但是在ie,事件onkeydown,onkeyup,onkeypress下没能响应ctrl键,其他键没问题.我想就是ie的一个小bug吧??
HTML code<script>
function KeyUp(e)
{
e=e||event;
alert(e.ctrlKey);
}
</script>
<input type=text onkeydown="KeyUp(event)">
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showliz
清风
等级:
可用分等级:富农
总技术分:233
总技术分排名:54267
发表于:2008-01-05 17:26:145楼 得分:0
很感谢showbo的关注!
不知道是不是IE上的这些事件和ctrl+z撤消功能产生冲突造成的。
这问题困扰我有一段时间了,终使找不到好的解决办法。
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
toury
理上网来
等级:
可用分等级:中农
总技术分:11282
总技术分排名:1673
2
发表于:2008-01-05 17:56:306楼 得分:0
input type=text <onkeyup="bbb.value=this.value;"> <input type=text name=bbb>
----------------------->
<input type=text onpropertychange="bbb.value=this.value;"> <input type=text name=bbb>
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showliz
清风
等级:
可用分等级:富农
总技术分:233
总技术分排名:54267
发表于:2008-01-05 18:01:107楼 得分:0
toury,您运用了不同的事件,原来效果是正常的,可ctrl+z的撤消仍然是操作无效啊。
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showbo
要学习了.....さようなら
等级:
可用分等级:富农
总技术分:43207
总技术分排名:210
3
3
发表于:2008-01-05 19:17:288楼 得分:0
ie对text输入根本就没响应ctrl键,就是你单按下ctrl时,alert(event.ctrlKey) 输出是false
汗.........
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showliz
清风
等级:
可用分等级:富农
总技术分:233
总技术分排名:54267
发表于:2008-01-05 19:27:059楼 得分:0
Toshowbo,可以实现啊。
<input type=text onkeydown="if (event.ctrlKey){alert(event.keyCode);}">
能输出ctrl的键值。
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showliz
清风
等级:
可用分等级:富农
总技术分:233
总技术分排名:54267
发表于:2008-01-07 09:38:2310楼 得分:0
自己顶一下!希望再有高手能帮忙解决。
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showliz
清风
等级:
可用分等级:富农
总技术分:233
总技术分排名:54267
发表于:2008-01-08 11:23:0811楼 得分:0
咋没人回应呢?我在网上查了很多相关的资料也没有找到解决办法,希望哪位能指点迷津。
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
showliz
清风
等级:
可用分等级:富农
总技术分:233
总技术分排名:54267
发表于:2008-01-10 14:30:0512楼 得分:0
自己再顶一顶!!
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
JK_10000
JK
等级:
可用分等级:小地主
总技术分:30777
总技术分排名:308
发表于:2008-01-29 11:07:0513楼 得分:80
以下代码来自JKValidation:
http://download.csdn.net/source/346399
\JKHtml\JKValidation\JKValidationDemo-SoftAlertWhenBlur.htm
<input type=text onblur="setTextInputValue(document.all.bbb,this.value);"> <input type=text name=bbb>
<script>
/**
* setTextInputValue
*/
function setTextInputValue(obj,value) // For IE: To keep Undo after change value.
{
if(obj.createTextRange) obj.createTextRange().text=value;
else obj.value=value;
}
</script>
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
JK_10000
JK
等级:
可用分等级:小地主
总技术分:30777
总技术分排名:308
发表于:2008-01-29 11:11:4714楼 得分:0
难得楼主也认真关注页面input/textarea里的undo功能.
例如日历,网上所见的很多日历,一旦使用,就导致整个页面的undo功能无效
再如CSDN的回贴textarea区域,竟然连undo都不支持
都显得过于粗略,没有认真为用户着想.
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
JK_10000
JK
等级:
可用分等级:小地主
总技术分:30777
总技术分排名:308
发表于:2008-01-29 11:14:0815楼 得分:0
想保持原效果可以用:
<input type=text onpropertychange="setTextInputValue(document.all.bbb,this.value);"> <input type=text name=bbb>
<script>
/**
* setTextInputValue
*/
function setTextInputValue(obj,value) // For IE: To keep Undo after change value.
{
if(obj.createTextRange) obj.createTextRange().text=value;
else obj.value=value;
}
</script>
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
dada20042030
其实回忆是一种痛苦
等级:
可用分等级:富农
总技术分:5066
总技术分排名:4301
2
发表于:2008-01-29 14:44:5016楼 得分:0
纯粹路过
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
dh20156
风之石
等级:
可用分等级:中农
总技术分:37574
总技术分排名:241
发表于:2008-01-29 17:30:5717楼 得分:0
学习!
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
tantaiyizu
痴情客 www.scriptlover.com
等级:
可用分等级:富农
总技术分:23270
总技术分排名:486
2
发表于:2008-01-29 21:54:1318楼 得分:0
学习!
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
yousite1
hihi
等级:
可用分等级:富农
总技术分:3497
总技术分排名:5964
发表于:2008-02-02 13:28:2919楼 得分:0
學習!
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
jiaxueq
住址:四川眉山XX县XX街X号 姓名:Loading...
等级:
可用分等级:富农
总技术分:4028
总技术分排名:5097
发表于:2008-02-03 08:37:4220楼 得分:5
HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页</title>
<style type="text/css">
body{
font-size:14px;
}
</style>
</head>
<body>
IE6下測式結果:<p>
請分別在下面輸入一些文字後,兩秒內 和 兩秒後 按Ctrl+Z;<p>
兩秒後賦值somestr:<input type=text onkeyup="window.setTimeout(function(){b1.value='somestr'},2000);"> <input type=text name=b1><p>
兩秒後賦一空值:<input type=text onkeyup="window.setTimeout(function(){b2.value=''},2000);"> <input type=text name=b2><p>
<p>會發現:
第一排輸入框,輸入內容後,在未給bbb賦值前(2秒內),按Ctrl+z是正常的,2秒後,給bbb賦值,無效了。<br>
第二排輸入框,輸入內容後,2秒前和2秒後ctrl+z都正常。<p>
估計是IE6一個BUG!
</body>
</html>
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
jiaxueq
住址:四川眉山XX县XX街X号 姓名:Loading...
等级:
可用分等级:富农
总技术分:4028
总技术分排名:5097
发表于:2008-02-03 08:40:4221楼 得分:0
請單獨測式。
即打開頁面後,先測式第一排。
要測式第二排,請關閉網頁,重新打開。
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
yulu126
追梦
等级:
可用分等级:短工
总技术分:5
总技术分排名:247828
发表于:2008-02-03 11:23:1322楼 得分:0
学习
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
JK_10000
JK
等级:
可用分等级:小地主
总技术分:30777
总技术分排名:308
发表于:2008-02-03 13:15:3723楼 得分:0
20楼的代码,如果本身b2.value就是空,执行{b2.value=''}才不会破坏IE的undo
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
jiaxueq
住址:四川眉山XX县XX街X号 姓名:Loading...
等级:
可用分等级:富农
总技术分:4028
总技术分排名:5097
发表于:2008-02-03 14:39:5324楼 得分:0
回樓上:是的。
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
wangwenjun69
汪文君
等级:
可用分等级:中农
总技术分:973
总技术分排名:19811
发表于:2008-02-03 15:36:2125楼 得分:0
一般情况下不要把函数直接写在表单的内容里面可以试着这样做
<script language="javascript">
function function1()
{
var aaa1 = document.getElementById("aaa").value;
document.getElementById("bbb").value=aaa1;
}
</script>
<form action="##" method="post">
<input type="text" name="aaa" onchange="function1();">
<input type="text" name="bbb">
</form>
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
hsx85315
等级:
可用分等级:长工
总技术分:45
总技术分排名:132192
发表于:2008-02-04 14:22:0126楼 得分:5
新手一个,不过我看到如下的文章:
http://www.blogjava.net/emu/archive/2005/09/28/14314.html
希望对你有点帮助。
- ·AJAX跨域问题解决办..
- ·ajax+asp.net+mssql..
- ·ajax问题总结
- ·JavaScript解析XML的..
- ·JS URL编码函数
- ·ajax+asp+mssql无刷..
- ·ajax无刷新上传文件..
- ·美化alert,confirm..
- flash/flex/fcs/AIR(750)
- Asp.Net/C#/WCF(476)
- JavaScript/Ajax(232)
- 操作系统及应用软件(206)
- SQL及数据库(105)
- 黑客技术(96)
- Asp/VBScript(85)
- 网站排名及优化(82)
- PHP/apache/Perl(72)
- HTML/WML/CSS兼容(65)
- 其他(59)
- 个人日志(44)
- lucence.net/分词技术(33)
- C#设计模式(22)
- 计算机网络(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(10)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
Powered by showbo,G51人力资讯网,桂ICP备05005887号
