我就是想把mainTest中的值通过JS赋给一个hidden类型的input的value,然后在score.jsp页面通过
request.getParameter取得mainTest页面中hidden类型的input的value,可是试了好多办法都传不过去
!!!!都为空啊,可是网上都说好使为什么我用就不好使了呢!!!???崩溃呀!!!各路大神救命啊!!!
mainTest.jsp
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="score.jsp" method="post" name="mainTest" id="mainTest" > <iframe src="test.jsp" width="1200" height="1000" id="quesFrame" name="ques">
</iframe> <input type="hidden" value="" name="selectionOfStu" id="selectionOfStu" />
<p><input type="submit" value="我要交卷" onClick=getSlcAnswer() /></p>
</form>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js">
function getSlcAnswer(){
document.mainTest.getElementById("selectionOfStu").value="ma";
}
</script>
</body>
</html>score.jsp
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<% String strSlcStu=request.getParameter("selectionOfStu");
System.out.println("slc:"+strSlcStu);
%>
<body></body>
</html>
request.getParameter取得mainTest页面中hidden类型的input的value,可是试了好多办法都传不过去
!!!!都为空啊,可是网上都说好使为什么我用就不好使了呢!!!???崩溃呀!!!各路大神救命啊!!!
mainTest.jsp
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="score.jsp" method="post" name="mainTest" id="mainTest" > <iframe src="test.jsp" width="1200" height="1000" id="quesFrame" name="ques">
</iframe> <input type="hidden" value="" name="selectionOfStu" id="selectionOfStu" />
<p><input type="submit" value="我要交卷" onClick=getSlcAnswer() /></p>
</form>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js">
function getSlcAnswer(){
document.mainTest.getElementById("selectionOfStu").value="ma";
}
</script>
</body>
</html>score.jsp
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<% String strSlcStu=request.getParameter("selectionOfStu");
System.out.println("slc:"+strSlcStu);
%>
<body></body>
</html>
document.getElementById("selectionOfStu").value="ma";
}直接这样就行了,getElementById方法只有document有。其他dom元素没有这个方法的。一般来说一个页面上不会出现重复id的情况,所以没有必要每个dom节点都有自己的getElementById方法。
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js">
function getSlcAnswer(){
document.mainTest.getElementById("selectionOfStu").value="ma";
}
</script>
你这是干嘛?又指定script标签的src,又在里面写自己的代码??<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
function getSlcAnswer(){
document.mainTest.getElementById("selectionOfStu").value="ma";
}
</script>
document.cookie="selectionA=A";
然后在mainTest.jsp页面中将cookie的值赋给js变量
function getSlcAnswer(){
var strCookie=document.cookie;
document.mainTest.getElementById("selectionOfStu").value=strCookie;
}
可是这个cookie的值为空时怎么回事???
test.jsp的代码如下:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<%@page import="java.sql.*" %>
<%@page import="java.io.*" %>
<%@page import="cec.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>考试界面</title>
</head>
<body>
<%
Connection con=null;
ResultSet rs=null;
Statement stmt=null;
String sele="selection";
Question myQuestion=new Question();
Student student=new Student();
int count=3,totalCount=6;
int randomNum=0;
try{
String connStr="jdbc:mysql://localhost:3306/question";
Class.forName("com.mysql.jdbc.Driver").newInstance();
con=DriverManager.getConnection(connStr,"root","071112");
stmt=con.createStatement();
for(randomNum=1;randomNum<=totalCount;randomNum++){
String strKey="select theKey from questiondatabase where quesNum='"+randomNum+"'";
rs=stmt.executeQuery(strKey);
if(rs.next()){
student.setStandAnsw(rs.getString("theKey"));
}
}
//System.out.println(student.getStandAnsw());
for(randomNum=1;randomNum<=count;randomNum++){
myQuestion.randomQuestion(randomNum,rs,stmt);
%><p><%=randomNum%>.<%=myQuestion.getQuestionText() %>()</p>
<p><input type="radio" value="A" name="<%=sele+randomNum%>"/>A.<%=myQuestion.getSelectionA() %></p>
<p><input type="radio" value="B" name="<%=sele+randomNum%>"/>B:<%=myQuestion.getSelectionB() %></p>
<p><input type="radio" value="C" name="<%=sele+randomNum%>"/>C:<%=myQuestion.getSelectionC() %></p>
<p><input type="radio" value="D" name="<%=sele+randomNum%>"/>D:<%=myQuestion.getSelectionD() %></p>
<%}%><%}
catch(Exception e){
e.printStackTrace();
System.out.println("Error!");
}
finally{
if(rs!=null){
rs.close();
}
if(con!=null){
con.close();
}
}
%>
<script type="text/javascript">
var count=3;
String sele="sele";
String selection="selection";
function getSlcValu(slcNum){
var slc=document.getElementsByName(slcNum);
var slcValu;
for(var i=0;i<=slc.length;i++){
if(slc[i].checked){
slcValu=slc[i].value;
break;
}
else{
continue;
}
}
return slcValu;
}
for(var numQues=1;numQues<=count;numQues++){
document.cookie="'"+sele+numQues+"'='"+getSlcValu(selection+numQues)"'";
}
</script></body>
</html>
String sele="sele";
String selection="selection";
function getSlcValu(slcNum){
var slc=document.getElementsByName(slcNum);
var slcValu;
for(var i=0;i<=slc.length;i++){
if(slc[i].checked){
slcValu=slc[i].value;
break;
}
else{
continue;
}
}
return slcValu;
}
for(var numQues=1;numQues<=count;numQues++){
document.cookie="'"+sele+numQues+"'='"+getSlcValu(selection+numQues)"'";
}你这代码是什么啊?你把JS当JAVA来写了? var count=3;
var sele="sele";
var selection="selection";
function getSlcValu(slcNum){
var slc=document.getElementsByName(slcNum);
var slcValu;
for(var i=0;i<=slc.length;i++){
if(slc[i].checked){
slcValu=slc[i].value;
break;
}
else{
continue;
}
}
return slcValu;
}
for(var numQues=1;numQues<=count;numQues++){
document.cookie+="'"+sele+numQues+"'='"+getSlcValu(selection+numQues)"'";
}
改成这样试试看。
sele+numQues和selection+numQues先赋给其他变量再用也不好使
<p><input type="radio" value="B" name="<%=sele+randomNum%>"/>B:<%=myQuestion.getSelectionB() %></p>
<p><input type="radio" value="C" name="<%=sele+randomNum%>"/>C:<%=myQuestion.getSelectionC() %></p>
<p><input type="radio" value="D" name="<%=sele+randomNum%>"/>D:<%=myQuestion.getSelectionD() %></p>你这里input的name是sele+随机数你JS代码里又是根据selection+numQues来取input,逗人玩呢?
var strCookie=document.cookie;
document.mainTest.getElementById("selectionOfStu").value=strCookie;
}给你说了不能mainTest.getElementById了,你代码里还是这样?不是刚说过getElementById只有document有么?
var slc=document.getElementsByName(slcNum);
var slcValu;
for(var i=0;i<=slc.length;i++){
if(slc[i].checked){
slcValu=slc[i].value;
break;
}
else{
continue;
}
}
return slcValu;
}
for(var numQues=1;numQues<=count;numQues++){
document.cookie="'"+sele+numQues+"'='"+getSlcValu(selection+numQues)"'";
}还有这里,仔细看一下你是想把选中的input的值存到cookie里面,这样你不是每个input 都要朝cookie里面写一次么?function getSlcValu(slcNum){
var slc=document.getElementsByName(slcNum);
var slcValu;
for(var i=0;i<=slc.length;i++){
if(slc[i].checked){
slcValu=slc[i].value;
document.cookie="'"+slc[i].name+"'='"+slcValu+"'";
break;
}
else{
continue;
}
}
return slcValu;
}
getSlcValu();
不知道你怎么想的。