日期:2014-05-17  浏览次数:20734 次

jsp调用函数问题
我想判断用户所选择的选项是否与正确答案一致,一致则在文本框中输出“回答正确”,否则输出“回答错误”,可是验证后发现,正确答案的参数无法传递进去。查了下资料还是没头绪,怎么解决?jsp代码如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.http.HttpSession"%>
<html>
<head>
<title>机动车驾驶人科目一学习</title>
<script language="javascript">
function check(name,CorrA)

  var temp = document.getElementsByName(name);
  for(var i=0;i<temp.length;i++)
  {
  if(temp[i].checked){
if (temp[i].value==CorrA){document.form1.txt.value ="回答正确";}
  else document.form1.txt.value ="回答错误";
}
  } 
}
</script>

</head>
<body>
<%
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url="jdbc:sqlserver://localhost:1433;DatabaseName=Driver";
String user="sa";
String password="08";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
%>

<form id="form1" name="form1" action=test2.jsp method=post >
<%
Object Num=session.getAttribute("Num"); 
int num1=0;
if (Num!=null)
{
num1=(Integer)Num;
}
num1++;
  session.setAttribute("Num",num1);
String sql="select * from Item where Inum="+num1;
ResultSet rs=stmt.executeQuery(sql);
if(rs.next()){
String CorrA=rs.getString(7);
%>
<%=rs.getString(1)%> <%=rs.getString(2)%><br> //String(1)-(7)分别是数据库中的题目序号、题目内容、选项ABCD,以及正确答案
<INPUT type="radio" name="R" onclick="check('R','CorrA')" value="A" >A.<%=rs.getString(3)%><br>
<INPUT type="radio" name="R" onclick="check('R','CorrA')" value="B" >B.<%=rs.getString(4)%><br>
<INPUT type="radio" name="R" onclick="check('R','CorrA')" value="C" >C.<%=rs.getString(5)%><br>
<INPUT type="radio" name="R" onclick="check('R','CorrA')" value="D" >D.<%=rs.getString(6)%><br>
<p><input type="text" readonly name="txt" value="" /></p>
<br>
<%}%>
<input type="submit" value="下一题" >
</form>
</body>
</html>

------解决方案--------------------
把JSP变量跟JS变量混淆了。

onclick="check('R','CorrA')
修改为:
onclick="check('R','<%=CorrA%>')"

------解决方案--------------------
HTML code

<body> 
    <script language="javascript">
    function check(name,CorrA) {  
      var temp = document.getElementsByName(name);
      for(var i=0;i<temp.length;i++) {
          if(temp[i].checked){
             //alert(temp[i].value);  --- 看这里  你的 temp[i].value 是 A 
             //alert(CorrA);   ---  看这里 你的 CorrA 值是 CorrA
             if (temp[i].value==CorrA){document.form1.txt.value ="回答正确";}
             else document.form1.txt.value ="回答错误";
          }
      }  
    }
    </script>
    <form id="form1" name="form1" action="" method="" >
     <!-- <INPUT type="radio" name="R" onclick="check('R','CorrA')" value="A" /> 修改为下面的 选A就是正确答案了 其他都是错误 -->
    <INPUT type=&q