求网页上文本框ctrl+z为什么无效?

showliz 2008-01-05 03:32:23
例如<input type=text onkeyup="bbb.value=this.value;"><input type=text name=bbb>
第一个文本框就不能用ctrl+z进行撤消,而第二个文本框就可以正常进行撤消。正常来说文本框或textarea不加JS事件都能用ctrl+z进行撤消操作,但加了某些事件后就失效了,请教高手怎么在不取消JS事件的情况下让ctrl+z的撤消功能可操作?
...全文
573 点赞 收藏 29
写回复
29 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
showliz 2008-02-19
各位新年好!合家幸福,恭喜发财!
谢谢各位达人的热忱帮忙!特别是JK_10000的帮助!
虽然我的问题仍没解决,但已经解决了我这个贴子提出的问题。所以结贴!
我重新提出了新贴:
http://topic.csdn.net/u/20080219/18/be723a00-3731-43d9-aee3-86bd6db1cdea.html?seed=1558258024
希望各位达人能再帮我真正的解决这个问题。
回复
JK_10000 2008-02-05
已经实现了,请看15楼代码
回复
Phenlit 2008-02-05
没办法实现,绑定事件与Ctrl+z冲突
回复
hsx85315 2008-02-04
新手一个,不过我看到如下的文章:
http://www.blogjava.net/emu/archive/2005/09/28/14314.html

希望对你有点帮助。
回复
wybb3007 2008-02-03
学习
回复
jiaxueq 2008-02-03
請單獨測式。

即打開頁面後,先測式第一排。

要測式第二排,請關閉網頁,重新打開。
回复
jiaxueq 2008-02-03

<!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>

回复
wangwenjun69 2008-02-03
一般情况下不要把函数直接写在表单的内容里面可以试着这样做
<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>
回复
jiaxueq 2008-02-03
回樓上:是的。
回复
JK_10000 2008-02-03
20楼的代码,如果本身b2.value就是空,执行{b2.value=''}才不会破坏IE的undo
回复
yousite1 2008-02-02
學習!
回复
JK_10000 2008-01-29
想保持原效果可以用:

<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>
回复
JK_10000 2008-01-29
难得楼主也认真关注页面input/textarea里的undo功能.

例如日历,网上所见的很多日历,一旦使用,就导致整个页面的undo功能无效
再如CSDN的回贴textarea区域,竟然连undo都不支持
都显得过于粗略,没有认真为用户着想.
回复
JK_10000 2008-01-29
以下代码来自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>
回复
兔子党-连长 2008-01-29
学习!
回复
dh20156 2008-01-29
学习!
回复
剑心永远OK 2008-01-29
纯粹路过
回复
showliz 2008-01-10
自己再顶一顶!!
回复
showliz 2008-01-08
咋没人回应呢?我在网上查了很多相关的资料也没有找到解决办法,希望哪位能指点迷津。
回复
showliz 2008-01-07
自己顶一下!希望再有高手能帮忙解决。
回复
发动态
发帖子
JavaScript
创建于2007-09-28

8.4w+

社区成员

Web 开发 JavaScript
申请成为版主
社区公告
暂无公告