假设我现在有N个文本框。
想实现如下效果:
1。当最后一个文本框之前的所有文本框只要有任何一个文本框为空值,则最后一个文本框的值为:“存在空值”
2。当最后一个文本框之前的所有文本框都已经不为空值时,则最后一个文本框的值为:“全部OK”
3。自动foucs到空值的文本框,当存在多个空值时,每填写完一个文本则自动foucs下一个空值文本框
请大家多多帮忙
想实现如下效果:
1。当最后一个文本框之前的所有文本框只要有任何一个文本框为空值,则最后一个文本框的值为:“存在空值”
2。当最后一个文本框之前的所有文本框都已经不为空值时,则最后一个文本框的值为:“全部OK”
3。自动foucs到空值的文本框,当存在多个空值时,每填写完一个文本则自动foucs下一个空值文本框
请大家多多帮忙
1.把所有文本框的name设为一样,如a
2.使用document.getElementsByName("a")获取所有文本框DOM
3.用循环语句判断是否存在空值
4.当有空值做相关操作
5.当没有空值做相关操作
6.将上述2-5作为一函数绑定到文本框事件如onblur上.
function abc(){
var inp = document.getElementsByName("a");
for(var i=0; i<inp.length; i++){
var j=inp[i];
if(i!=inp.length-1 && j.value==""){
j.focus();
inp[inp.length-1].value="有空值";
return;
}else if(i==inp.length-1){
j.value="没空值";
}
}
}
</script>
<input name="a" onblur="abc()"/>
<input name="a" onblur="abc()"/>
<input name="a" onblur="abc()"/>
<input name="a" onblur="abc()"/>
不是没头绪吧.是不想自己做...
我一方面是没头绪
另一方面自己写了如下一段代码
但是会出错
var list=document.getElementsByTagName('input');
for(var j=1;j <list.length-1;j++){
if(list[j].value ==""){
document.getElementById("_judge").value="测定中"
document.getElementById("_judge").style.color="#FF9900"
document.getElementById("_judge").style.fontWeight="bold"
} else if(list[j].value !=""){
document.getElementById("_judge").value="已完成"
document.getElementById("_judge").style.color="green"
}
}
错误是:当倒数第二个文本框不为空时,就会显示"已完成"
那怕是前面都是空的
for(var j=1;j <list.length-1;j++){ 应该是:
for(var j=0;j <list.length-1;j++){ 其次, 逻辑错误。第一个if中,满足条件就应该return;
犯了一些低级错误.
我模仿着写了一段代码:
var inp = document.getElementsByTagName('input');
for(var i=1; i<inp.length; i++){
var j=inp[i];
if(i!=inp.length-1 && j.value==""){
inp[inp.length-1].value="测定中";
inp[inp.length-1].style.color="#FF9900";
inp[inp.length-1].style.fontWeight="bold";
return;
}else if(i==inp.length-1){
inp[inp.length-1].value="已完成";
inp[inp.length-1].style.color="green";
inp[inp.length-1].style.fontWeight="bold";
return;
}
else if(i==inp.length-1 && j.value!="" &&j.style.color=="green"){
inp[inp.length-1].value="OK";
inp[inp.length-1].style.color="green";
inp[inp.length-1].style.fontWeight="bold";
}
}
想通这段代码实现:
当文本框(不含最后一个)所有都不为空且字体颜色为绿色时
最后一个文本框="OK".
不知道那里出了问题,一直不成功
还请两位再指点一下
<body>
<input id="Text2" type="text" /><br />
<input id="Text1" type="text" />
<br />
<input id="Text3" type="text" />
<br />
<input id="Text4" type="text" /><br />
<input id="Text5" type="text" /><br />
<input id="Button1" type="button" value="测试" onclick="return Button1_onclick()" /></body>
</html>
<script type="text/javascript">
function Button1_onclick() {
var inp = document.getElementsByTagName('input');
var isOk=true; //判断是否全部OK
var notOkNo= 0; //不OK的文本框序号
for(var i=0; i<inp.length-2; i++){
if(inp[i].value==""){
isOk=false;
notOkNo=i;
break;
}
}
if(isOk){
inp[inp.length-2].value="OK";
inp[inp.length-2].style.color="green";
inp[inp.length-2].style.fontWeight="bold";
}
else{
inp[inp.length-2].value="第"+(notOkNo+1)+"个input出了问题";
inp[notOkNo].focus(); //焦点跳到出现问题的文本框
isOk=true;
notOkNo= 0;
}
}
</script>