搞稿喔!才送出的 100 分,再送 100 分,对昨天问题的补充 居然会这样??!!晕倒~~~ TO: hehongyu2000(Henry)

feeling 2001-11-18 08:15:02
以下是昨天的问题
----------------------------------------------------------
四个框<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[v_objText.sourceIndex + 1];
blnFound = false;
while ("object" == typeof(objElement) && !blnFound) {
if ("text" == objElement.type) {
objElement.focus();
blnFound = true;
}
else {
objElement = document.all[objElement.sourceIndex + 1];
}
}
}
}
</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> 当中,至少是能改的呀。居然改都改不了,删除的时候也有问题。把后面的删了,前面的居然删不了。

帮忙解决。…… 谢了!
...全文
110 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hehongyu2000 2001-11-21
  • 打赏
  • 举报
回复
好象
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[v_objText.sourceIndex + 1];
blnFound = false;
while ("object" == typeof(objElement) && !blnFound) {
if ("text" == objElement.type) {
objElement.focus();
blnFound = true;
}
else {
objElement = document.all[objElement.sourceIndex + 1];
}
}
}
}
}
</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>



xunzu 2001-11-21
  • 打赏
  • 举报
回复
关注
feeling 2001-11-21
  • 打赏
  • 举报
回复
呵呵…! 还是有问题题 ,这回连浏览器都自动关掉了。
我输入超过五个字符就………

我记得以前我问这个问题,现在找不到了,以前的密码给忘了。
以前别人给我的答复好像很好用的样子。

实在不行,我就会将就着用这个了。
feeling 2001-11-20
  • 打赏
  • 举报
回复
还是有问题呀,我可以删,但如何改呢,比如当你把字母打进去以后,发现错了,改不起来,不信就试试,一改,就把后面的改了。
hehongyu2000 2001-11-20
  • 打赏
  • 举报
回复
啊, 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[v_objText.sourceIndex + 1];
blnFound = false;
while ("object" == typeof(objElement) && !blnFound) {
if ("text" == objElement.type) {
objElement.focus();
blnFound = true;
}
else {
objElement = document.all[objElement.sourceIndex + 1];
}
}
}
}
</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>



feeling 2001-11-20
  • 打赏
  • 举报
回复
up !
hehongyu2000 2001-11-19
  • 打赏
  • 举报
回复
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[v_objText.sourceIndex + 1];
blnFound = false;
while ("object" == typeof(objElement) && !blnFound) {
if ("text" == objElement.type) {
objElement.focus();
blnFound = true;
}
else {
objElement = document.all[objElement.sourceIndex + 1];
}
}
}
}
</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>
hehongyu2000 2001-11-19
  • 打赏
  • 举报
回复
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>
hvq 2001-11-19
  • 打赏
  • 举报
回复
这个问题好解决:
<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>
feeling 2001-11-19
  • 打赏
  • 举报
回复
行啥! 试一下咯,不行撒
shenjingyao 2001-11-18
  • 打赏
  • 举报
回复
啊呀,奇了怪了,等我再仔细瞧瞧:)
希偌 2001-11-18
  • 打赏
  • 举报
回复
行呀

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧