0

我用 codeigniter 制作了一个测验应用程序。当我发布问题时,我需要检查选项值和答案值。那么我如何使用合适的条件进行检查。或者使用答案值检查所有这些选项值的条件是什么?下面我展示我的观点

<?php include_once('header.php'); ?>
<?php include_once('tnavbar.php'); ?>

<script src="<?php echo base_url();?>/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
  function validateForm1(){
var j=3;
//alert(j);
for(var i=1; i<= j ; i++){
var qus1=document.forms["myForm1"]["ques[" + i + "]"].value;
var opt1=document.forms["myForm1"]["opt1[" + i + "]"].value;
var opt2=document.forms["myForm1"]["opt2[" + i + "]"].value;
var opt3=document.forms["myForm1"]["opt3[" + i + "]"].value;
var ans1=document.forms["myForm1"]["ans[" + i + "]"].value;

if ((qus1==null || qus1=="")||(opt1==null || opt1=="")||(opt2==null || opt2=="")||(opt3==null || opt3=="")||(ans1==null || ans1==""))
{
  alert("All field must be fill");
return false;
  }

}
for(var z=1; z<= j ; z++){
//var qus2=document.forms["myForm1"]["ques[" + z + "]"].value;
var opt4=document.forms["myForm1"]["opt1[" + z + "]"].value;
var opt5=document.forms["myForm1"]["opt2[" + z + "]"].value;
var opt6=document.forms["myForm1"]["opt3[" + z + "]"].value;
var ans2=document.forms["myForm1"]["ans[" + z + "]"].value;

if ((opt4||opt5||opt6)==ans2)
  {
  //alert("answer not match");
return true;
  }
  else{
  alert("answer not match");
  return false;
  }

//return true;
}
}
</script>

<div class="maincontent_area">
<div class="container">
    <div class="row">
        <div class="span12">
        <form id="myForm1" action="<? echo base_url()."/index.php/Tmcq_test/insertmcq";?>" onsubmit="return validateForm1();" method="post">
            <?php         for($i=1; $i<= 3; $i++){
?>
   Question : <input type="text" name="ques[<?php echo $i;?>]"><br/>
   Option 1 : <input type="text" name="opt1[<?php echo $i;?>]" ><br/>
   Option 2 : <input type="text" name="opt2[<?php echo $i;?>]" ><br/>
   Option 3 : <input type="text" name="opt3[<?php echo $i;?>]" ><br/>
   &nbsp;Answer : &nbsp;<input type="text" name="ans[<?php echo $i;?>]" ><br/>

   <br/>
   <?php  //echo $value->answer;

    } ?>

                    <input type="hidden" name="quiz_name"  value="<?php echo $name;?>">
                    <input type="hidden" name="sub_id"  value="<?php echo $sub_id;?>">
                    <input type="hidden" name="quiz_number"  value="<?php echo $number;?>">
                    <input type="hidden" name="time_number"  value="<?php echo $time_number;?>">

        <input type="submit" name="submit" id="submit" value="Create"  class="btn btn-info">


        </form>
        <a href="<? echo base_url()."/index.php/Tmcq_test";?>"> <button class="btn btn-info"> Exit  </button> </a>

        </div>
    </div>
</div>

<?php include_once('footer.php'); ?>

在这里我可以检查所有提交的必须填写。但在第二种情况下

    for(var z=1;z<=j;z++)
//var qus2=document.forms["myForm1"]["ques[" + z + "]"].value;
var opt4=document.forms["myForm1"]["opt1[" + z + "]"].value;
var opt5=document.forms["myForm1"]["opt2[" + z + "]"].value;
var opt6=document.forms["myForm1"]["opt3[" + z + "]"].value;
var ans2=document.forms["myForm1"]["ans[" + z + "]"].value;

if ((opt4||opt5||opt6)==ans2)
  {
  //alert("answer not match");
return true;
  }
  else{
  alert("answer not match");
  return false;
  }

//return true;
}
}

我如何检查至少一个选项值必须与答案匹配?我需要使用什么条件?

4

1 回答 1

0

您必须单独进行比较:

if (opt4 == ans2 || opt5 == ans2 || opt6 == ans2){
    console.log("answer matches");
    return true;
}else{
    console.log("answer does not match");
    return false;
}
于 2013-09-04T19:21:43.390 回答