+ -
当前位置:首页 → 问答吧 → 幫我看看这个JS哪里出错了?

幫我看看这个JS哪里出错了?

时间:2011-12-06

来源:互联网

JScript code

<script>

function beforesubmit()
{
var number = document.getElementById("qty1").value;
for (j=1;j<=number;j++){
if(document.getElementById("ou_user"+j).checked==false)
{
    alert("至少選擇一位審核人!");
     document.getElementByName("ou_user"+j).focus();
    return false;
    }
}
var cond=confirm("確定申請嗎?")
    if (!cond)  {
        return false;
    }
 }
</script>
<form id="form1" name="form1" method="POST" action="<%=MM_editAction%>" onSubmit="return beforesubmit()">

              <% 
            j=1
            if rs1.recordcount>0 then
             do while not rs1.eof
          %>
 
       
         <input name="ou_user" type="radio" id="ou_user<%=j%>" value="<%=rs1("u_id")%>"  />
            <%=rs1("finishname")%>
    
          <%
       j=j+1
       rs1.movenext
       loop
       end if
     %>
 <input type="submit" name="button" id="button" value="確定"  />
</form>


作者: shugeer   发布时间: 2011-12-06

var number = document.getElementById("qty1").value;
for (j=1;j<=number;j++)

这块的问题吧

document.getElementById("qty1").value你这块拿到的值是个字符串。

根据,逗号或者别的符号分割成数组才能循环,要不进不了for循环

作者: MuBeiBei   发布时间: 2011-12-06

什么错误 情况?

作者: babyboy9685   发布时间: 2011-12-06

我提交的时候,,选中了单选按钮还提示"至少選擇一位審核人!"
不让我过去

作者: shugeer   发布时间: 2011-12-06

form里漏了一句<input name="qty1" type="hidden" id="qty1" value="<%=j-1%>" />
完整的代码如下,,但是还不行

<script>

function beforesubmit()
{
var number = document.getElementById("qty1").value;
for (j=1;j<=number;j++){
if(document.getElementById("ou_user"+j).checked==false)
{
  alert("至少選擇一位審核人!");
  document.getElementByName("ou_user"+j).focus();
  return false;
  }
}
var cond=confirm("確定申請嗎?")
  if (!cond) {
  return false;
  }
 }
</script>
<form id="form1" name="form1" method="POST" action="<%=MM_editAction%>" onSubmit="return beforesubmit()">

  <% 
  j=1
  if rs1.recordcount>0 then
  do while not rs1.eof
  %>
 
   
  <input name="ou_user" type="radio" id="ou_user<%=j%>" value="<%=rs1("u_id")%>" />
  <%=rs1("finishname")%>
   
  <%
  j=j+1
  rs1.movenext
  loop
  end if
  %>
<input name="qty1" type="hidden" id="qty1" value="<%=j-1%>" />
 <input type="submit" name="button" id="button" value="確定" />
</form>

作者: shugeer   发布时间: 2011-12-06

引用 1 楼 mubeibei 的回复:

var number = document.getElementById("qty1").value;
for (j=1;j<=number;j++)

这块的问题吧

document.getElementById("qty1").value你这块拿到的值是个字符串。

根据,逗号或者别的符号分割成数组才能循环,要不进不了for循环


我更新了代码,,再帮我看下

作者: shugeer   发布时间: 2011-12-06

1.你这个方法只有return false 
2.你不该 这么判断 第一个 你是选 了 可是循环没有停止 只有遇到一个不选的才会停

作者: babyboy9685   发布时间: 2011-12-06

引用 6 楼 babyboy9685 的回复:

1.你这个方法只有return false
2.你不该 这么判断 第一个 你是选 了 可是循环没有停止 只有遇到一个不选的才会停

你的判断 应该是只要有一个选的 就要跳出循环 往下走

作者: babyboy9685   发布时间: 2011-12-06

JScript code

for (j=1;j<=number;j++){
   if(document.getElementById("ou_user"+j).checked==true){
      break;
   }
   alert("至少選擇一位審核人!");
   document.getElementByName("ou_user"+j).focus();
   return false;
  }
}

作者: babyboy9685   发布时间: 2011-12-06

引用 7 楼 babyboy9685 的回复:

引用 6 楼 babyboy9685 的回复:

1.你这个方法只有return false
2.你不该 这么判断 第一个 你是选 了 可是循环没有停止 只有遇到一个不选的才会停

你的判断 应该是只要有一个选的 就要跳出循环 往下走

帮我修改下好吗?非常感谢!

作者: shugeer   发布时间: 2011-12-06

JScript code

  var checkflag = false;
  for(var i=0;i<number;i++){
    if(document.getElementById("aaa"+i).checked = true){
      checkflag = true;
      break;
   }
  }
  if(checkflag==false){
    alert("至少选一个")
    return false;
}



作者: babyboy9685   发布时间: 2011-12-06

JScript code
<script>

function beforesubmit()
{
var number = document.getElementsByName('ou_user');
for (j=1;j<=number;j++){
if(document.getElementById("ou_user"+j).checked==false)
{
    alert("至少選擇一位審核人!");
     document.getElementByName("ou_user"+j).focus();
    return false;
    }
}
var cond=confirm("確定申請嗎?")
    if (!cond)  {
        return false;
    }
 }
</script>


这样试试~·

作者: MuBeiBei   发布时间: 2011-12-06

注意我没有用你的原代码 
有区别的地方改了
  var checkflag = false;
  for(var i=0;i<number;i++){
  if(document.getElementById("ou_user"+i).checked == true){
  checkflag = true;
  break;
  }
  }
  if(checkflag==false){
  alert("要至少选一个");
  return false;
  }

作者: babyboy9685   发布时间: 2011-12-06

几经研究正确的js部分应该如下,但搞不懂这是什么意思 if (!checkflag)
谢谢大家!

<script>

function beforesubmit()
{
var checkflag = false;
var number = document.getElementsByName('ou_user');
for (var j=0;j<number.length;j++)
{
if(number[j].checked)
{
checkflag=true;
}
}
if (!checkflag)
{
  alert("至少選擇一位審核人!");
  //document.getElementByName("ou_user").focus();
  return false;
   
}
var cond=confirm("確定申請嗎?")
if (!cond) {
return false;
}
 }
</script>

作者: shugeer   发布时间: 2011-12-06

几经研究正确的js部分应该如下,但搞不懂这是什么意思 if (!checkflag)

之前不是定义var checkflag = false;

然后如果有选择的话,checkflag就为true
if(number[j].checked)
{
checkflag=true;
}

if (!checkflag)
非就是取反,true就是false,false就为true

如果没选择就进if
弹出alert

作者: MuBeiBei   发布时间: 2011-12-06