搞稿喔!才送出的 100 分,再送 100 分,对昨天问题的补充 居然会这样??!!晕倒~~~ TO: hehongyu2000(Henry)
搞稿喔!才送出的 100 分,再送 100 分,对昨天问题的补充 居然会这样??!!晕倒~~~ TO: hehongyu2000(Henry)
楼主feeling()2001-11-18 20:15:02 在 Web 开发 / ASP 提问 以下是昨天的问题
----------------------------------------------------------
四个框<input> 第一个输入五位数后,焦点移到下一个框,如此……
----------------------------------------------------------
以下是今天的回复
n个text框的解决方案:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<Script Language="JavaScript">
function move(v_objText) {
if (v_objText.value.length >= 5) {
var objElement, blnFound;
objElement = document.all;
blnFound = false;
while ("object" == typeof(objElement) && !blnFound) {
if ("text" == objElement.type) {
objElement.focus();
blnFound = true;
}
else {
objElement = document.all;
}
}
}
}
</Script>
<BODY>
<P> </P>
<form name="form1">
<p><input type="text" name="text1" onKeyDown="move(this);"></p>
<p><input type="text" name="text2" onKeyDown="move(this);"></p>
<p><input type="text" name="text3" onKeyDown="move(this);"></p>
<p><input type="text" name="text4" onKeyDown="move(this);"></p>
</form>
</BODY>
</HTML>
---------------------------------以下是今天我的问题。
-----------------------------------------------------------------
输入数据要是划了,如何回头来改呢,你们有试过吗,居然删都删不掉,改也没有可能,这是怎么回事。数据填到<INPUT> 当中,至少是能改的呀。居然改都改不了,删除的时候也有问题。把后面的删了,前面的居然删不了。
帮忙解决。…… 谢了!
问题点数:100、回复次数:12Top
1 楼beyond_xiruo(CorruptionException)回复于 2001-11-18 20:34:17 得分 0
行呀Top
2 楼shenjingyao(e豆)回复于 2001-11-18 20:48:25 得分 0
啊呀,奇了怪了,等我再仔细瞧瞧:)Top
3 楼feeling()回复于 2001-11-19 07:30:50 得分 0
行啥! 试一下咯,不行撒Top
4 楼hvq(程序员.net)回复于 2001-11-19 08:51:24 得分 0
这个问题好解决:
<SCRIPT LANGUAGE=javascript>
function changeFocus(obj1,obj2) {
if(obj1.value.length!=5) return;
obj2.focus();
}
</SCRIPT>
<p><input type="text" name="text1" onpropertychange="changeFocus(this,text2)"></p>
<p><input type="text" name="text2"></p>
Top
5 楼hehongyu2000(Henry)回复于 2001-11-19 09:24:00 得分 0
Sorry, feeling兄,
修正版:
<SCRIPT LANGUAGE=javascript>
function changeFocus(obj1,obj2) {
if(obj1.value.length!=5) return;
obj2.focus();
}
</SCRIPT>
<p><input type="text" name="text1" onpropertychange="changeFocus(this,text2)"></p>
<p><input type="text" name="text2"></p>
Top
6 楼hehongyu2000(Henry)回复于 2001-11-19 09:34:22 得分 0
Sorry, Copy&Paste错误,
修正版:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<Script Language="JavaScript">
function move(v_objText) {
if (v_objText.value.length >= 4) {
var objElement, blnFound;
if (v_objText.value.length <= 4) {
v_objText.value = v_objText.value + String.fromCharCode(window.event.keyCode);
window.event.returnValue = false;
}
else {
window.event.returnValue = false;
}
objElement = document.all;
blnFound = false;
while ("object" == typeof(objElement) && !blnFound) {
if ("text" == objElement.type) {
objElement.focus();
blnFound = true;
}
else {
objElement = document.all;
}
}
}
}
</Script>
<BODY>
<a href="excel.xls">EXCEL</a>
<P> </P>
<form name="form1">
<p><input type="text" name="text1" onKeyPress="move(this);"></p>
<p><input type="text" name="text2" onKeyPress="move(this);"></p>
<p><input type="text" name="text3" onKeyPress="move(this);"></p>
<p><input type="text" name="text4" onKeyPress="move(this);"></p>
</form>
</BODY>
</HTML>
Top
7 楼feeling()回复于 2001-11-20 11:35:04 得分 0
还是有问题呀,我可以删,但如何改呢,比如当你把字母打进去以后,发现错了,改不起来,不信就试试,一改,就把后面的改了。Top
8 楼feeling()回复于 2001-11-20 19:09:37 得分 0
up !Top
9 楼hehongyu2000(Henry)回复于 2001-11-20 23:00:37 得分 0
啊, sorry, 又有bug. 好, 在改动之前, 我先做一些requirement分析,
如有不对, 请指出:
1. 有四个text框.(可延伸到n个text框)
2. 每个text框只能输入5个合法字符, 阻止user输入超过5个字符.
3. 在第i个text框输入总数达到5个字符时, 光标跳到第i + 1个text框 (1 <= i <= 3)
4. User会对已输入完成的第i个text框内容进行修改.
a. 先删除再输入, 此时会按照第3条运作.
b. 在第j个位置直接输入, 此时会用输入字符向后挤, 将最后一个字符挤掉, 并且光标会自动跳到第i + 1个输入框 (1 <= j <=5)
c. 在末尾输入, user得不到任何输入, 并且光标跳到第i + 1个输入框.
一下是我根据以上的requirement进行的修改:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<Script Language="JavaScript">
function move(v_objText) {
if (v_objText.value.length >= 5) {
var objElement, blnFound;
if (v_objText.value.length > 5) {
v_objText.value = v_objText.value.substring(0, 5);
}
objElement = document.all;
blnFound = false;
while ("object" == typeof(objElement) && !blnFound) {
if ("text" == objElement.type) {
objElement.focus();
blnFound = true;
}
else {
objElement = document.all;
}
}
}
}
</Script>
<BODY>
<P> </P>
<form name="form1">
<p><input type="text" name="text1" onPropertyChange="move(this);"></p>
<p><input type="text" name="text2" onPropertyChange="move(this);"></p>
<p><input type="text" name="text3" onPropertyChange="move(this);"></p>
<p><input type="text" name="text4" onPropertyChange="move(this);"></p>
</form>
</BODY>
</HTML>
Top
10 楼feeling()回复于 2001-11-21 02:57:05 得分 0
呵呵…! 还是有问题题 ,这回连浏览器都自动关掉了。
我输入超过五个字符就………
我记得以前我问这个问题,现在找不到了,以前的密码给忘了。
以前别人给我的答复好像很好用的样子。
实在不行,我就会将就着用这个了。Top
11 楼xunzu(过客)回复于 2001-11-21 06:39:29 得分 0
关注Top
12 楼hehongyu2000(Henry)回复于 2001-11-21 22:38:19 得分 100
好象
v_objText.value = v_objText.value.substring(0, 5);
在onPropertyChange时会造成browser崩溃, 我想是陷入死循环的原因.
我又修改了一次, requirement与上次一样, Please try it, thanks.
---------------------------------------------------------------------
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<Script Language="JavaScript">
function move(v_objText) {
if (v_objText.value.length >= 4) {
//Set current input
document.selection.createRange().text = String.fromCharCode(window.event.keyCode);
window.event.returnValue = false;
if (v_objText.value.length >= 5) {
var objElement, blnFound;
v_objText.value = v_objText.value.substring(0, 5);
//Looking and jump to next text box
objElement = document.all;
blnFound = false;
while ("object" == typeof(objElement) && !blnFound) {
if ("text" == objElement.type) {
objElement.focus();
blnFound = true;
}
else {
objElement = document.all;
}
}
}
}
}
</Script>
<BODY>
<P> </P>
<form name="form1">
<p><input type="text" name="text1" onKeyPress="move(this);"></p>
<p><input type="text" name="text2" onKeyPress="move(this);"></p>
<p><input type="text" name="text3" onKeyPress="move(this);"></p>
<p><input type="text" name="text4" onKeyPress="move(this);"></p>
</form>
</BODY>
</HTML>
Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
