createQuesAdd.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script type="text/javascript">
function show(){
var myElement = document.getElementById('hideQ');
myElement.style.display = '';
hideQ();
}
function hideQ(){
var myElement = document.getElementById('showQ');
myElement.style.display = 'none';
}
</script>
</head>
<body>
<form id="showQ" onsubmit="show();">Insert More Question?<input type="submit" value="Yes"/>
<input type="button" value="No" onclick="window.location.href='Home.jsp';"/>
</form>
<form action="saveQuesAdd.do" method="post">
<table id="hideQ" style="display: none;">
<tr><td><input name="tableName" hidden="true" value="${requestScope.table_name}"/></td></tr>
<tr><td>Question No.</td><td><input type="text" name="question_no"/></td></tr>
<tr><td>Question:</td><td><textarea rows="3" cols="" name="question" ></textarea></td></tr>
<tr><td>Option1:</td><td><input type="text" name="option1" /></td></tr>
<tr><td>Option2:</td><td><input type="text" name="option2" /></td></tr>
<tr><td>Option3:</td><td><input type="text" name="option3" /></td></tr>
<tr><td>Option4:</td><td><input type="text" name="option4" /></td></tr>
<tr><td>Answer:</td><td><input type="text" name="answer" /></td></tr>
<tr><td><input type="submit" value="Create Database"/></td></tr>
</table>
</form>
</body>
</html>
我要进入这个页面完全相同的形式。在至少一次进入数据库之后,用户被转发到该页面并被询问他是否想要在数据库中输入更多条目。问题是当点击“是”按钮时,表格会显示(我希望它在用户说出之前隐藏),并且不让我做任何事情并用之前的条目提交自己!我得到一个SQL异常说复制副本。为什么要自动提交?
答案 0 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script type="text/javascript">
function show() {
var myElement = document.getElementById('hideQ');
myElement.style.display = '';
hideQ();
return false;
}
function hideQ() {
var myElement = document.getElementById('showQ');
myElement.style.display = 'none';
}
</script>
</head>
<body>
<form id="showQ" onsubmit="return show()">
Insert More Question?<input type="submit" value="Yes" />
<input type="button" value="No" onclick="window.location.href='Home.jsp';" />
</form>
<form action="saveQuesAdd.do" method="post">
<table id="hideQ" style="display: none;">
<tr><td><input name="tableName" hidden="true" value="${requestScope.table_name}" /></td></tr>
<tr><td>Question No.</td><td><input type="text" name="question_no" /></td></tr>
<tr><td>Question:</td><td><textarea rows="3" cols="" name="question"> </textarea></td></tr>
<tr><td>Option1:</td><td><input type="text" name="option1" /></td></tr>
<tr><td>Option2:</td><td><input type="text" name="option2" /></td></tr>
<tr><td>Option3:</td><td><input type="text" name="option3" /></td></tr>
<tr><td>Option4:</td><td><input type="text" name="option4" /></td></tr>
<tr><td>Answer:</td><td><input type="text" name="answer" /></td></tr>
<tr><td><input type="submit" value="Create Database" /></td></tr>
</table>
</form>
</body>
</html>
如上所示更新代码,它可以正常工作:)
点击“是”按钮,您只是显示DIV并发布表单,以便自动提交。
答案 1 :(得分:0)
页面未自动提交,您在单击“是”按钮时提交该页面。
您的“是”按钮是提交。单击它时,将调用onsubmit操作,这就是您看到包含hideQ表的表单的原因。由于您没有为“showQ”表单指定操作,因此默认为当前文档根目录(对于createQuesAdd.jsp)。
我的建议是更改一行:
<form id="showQ" onsubmit="show();">Insert More Question?<input type="submit" value="Yes"/>
要:
<form id="showQ">Insert More Question?<input type="button" value="Yes" onclick="show();"/>
您实际上并没有尝试使用“是”按钮提交任何内容,因此您不希望它是提交内容。