if语句未识别存储在变量中的条件

时间:2015-05-31 16:03:11

标签: javascript

我正在使用jsp页面,其中我要求几个多项选择题。所以我使用单选按钮来显示选项。

现在我想写一个javascript函数来强制检查所有字段。 我的代码看起来像这样。

var lengh = document.getElementById("totalQues").value;
for(i=1;  i <= lengh; i++){
        var radioName= "radio"+i;
        var radioQues = document.getElementsByName(radioName);
        var concatS= "";
        for(j=0; j< radioQues.length; j++){
            concatS = concatS+"(radioQues["+j+"].checked == false)";
            concatS= concatS + " && ";
        }
        var sliced=  concatS.slice(0, concatS.lastIndexOf("&&"));
        if(sliced){
            msgid="Question "+i;
            id="radio"+i;
            check=false;
            break;
        }
        if(check==false){
            alert("kopkopok the break part");

        }
    }

问题在于

var sliced=  concatS.slice(0, concatS.lastIndexOf("&&"));
        if(sliced){
            msgid="Question "+i;
            id="radio"+i;
            check=false;
            break;
        }

我的if语句没有识别我在切片变量中存储的条件。 请帮帮....

1 个答案:

答案 0 :(得分:0)

看起来你正在尝试评估字符串

"(radioQues[1].checked == false) && (radioQues[2].checked == false) ..."

并查看描述的条件是否为真。将字符串本身与false进行比较将不会这样做。最好只需在循环浏览按钮时检查按钮,查找已选中的按钮。如果未找到,请显示您的提醒:

var lengh = document.getElementById("totalQues").value;

for (i = 1; i <= lengh; i++) {
  var radioName = "radio" + i;
  var radioQues = document.getElementsByName(radioName);
  var any = false;

  for (j = 0; j < radioQues.length; j++) {
    if (radioQues[j].checked) {
      any = true;
      break;
    }
  }

  if (!any) {
    msgid = "Question " + i;
    id = "radio" + i;
    alert("kopkopok the break part");
    break;
  }
}