[英]How to disable Form Onsubmit function JSP
我有两个单选按钮,(是和否),当用户选择是时,将出现一组文本框,并且至少要输入一个条目才能提交。 如果用户选择“否”,则他/她可以不提交任何条目或进行任何提交。 除“否”部分外,我一切正常。 验证功能在表单内部起作用,当选择的按钮为“否”时,是否可以禁用该功能?
<script type="text/javascript">
function checkEvent() {
console.log("infunc");
if(document.getElementById('events_yes').checked){
document.getElementById('if_events_yes').style.display = "block";
}
else{
document.getElementById('if_events_yes').style.display = "none";
document.getElementById('myForm').removeAttribute("onsubmit","");
}
}
</script>
<form action="ResponseDB" method="post" id="myForm">
<input name="tipid" value="<% out.println(tipid);%>" type = "hidden">
Any events to report?<br>
<input type="radio" name="events" onclick="checkEvent()" id="events_yes" value="no">Yes<br>
<input type="radio" name="events" onclick="checkEvent()" id="events_no" value="yes" checked>No<br>
<div id="if_events_yes" style="display:none">
<br><br>
Firewall:<br>
<textarea rows="5" cols="80" name="firewall"></textarea><br>
IDS/IPS:<br>
<textarea rows="5" cols="80" name="ids"></textarea><br>
Web Content Filtering/Proxy:<br>
<textarea rows="5" cols="80" name="proxy"></textarea><br>
Deep packet inspection:<br>
<textarea rows="5" cols="80" name="dpi"></textarea><br>
Network malware protection devices (FireEye, Damballa, etc.):<br>
<textarea rows="5" cols="80" name="net_malware"></textarea><br>
Anti-virus software:<br>
<textarea rows="5" cols="80" name="av" id="av"></textarea><br>
Forensics Tools:<br>
<textarea rows="5" cols="80" name="forensics"></textarea><br>
Tripwire:<br>
<textarea rows="5" cols="80" name="tripwire"></textarea><br>
Memory Dumps:<br>
<textarea rows="5" cols="80" name="memdumps"></textarea><br>
Email logs:<br>
<textarea rows="5" cols="80" name="email_logs"></textarea><br>
</div>
<input type="submit" value="Submit">
</form>
<script>
onsubmit=function() {
var t = document.getElementsByTagName("textarea"),
l = 0;
for(var i = 0; i < t.length; i++){
l = l + t[i].value.trim();
}
if (l < 1) {
alert("Please have at least one entry");
return false;
}
}
</script>
这是我正在研究的部分。 无论如何,当用户选择“否”时,是否可以禁用onsubmit功能?
您应该可以从w3schools使用此示例。 他们的示例发送到asp页面,但这没关系。
我已在此处复制了您需要的零件,但是有关其工作方式或原因的更多详细信息,请访问上面的链接。
像这样的JavaScript函数,但要检查单选按钮的状态:
function validateForm() {
//here just get the value(s) from your radio(s)
var x = document.forms["myForm"]["fname"].value;
//check the value
if (x == null || x == "") {
alert("Name must be filled out");
//this prevents the submit to your server
return false;
}
}
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">
感谢webdeveloper.com论坛的Kevin2。
<%@page import="com.sun.xml.internal.txw2.Document"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="db.ResponseTracker"%>
<!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>MASC Response Form</title>
<style>
/* this selector could be div#nav instead of nav depending on which tag you wrapped the ul in */
#nav {
width: 100%;
float: left;
margin: 0 0 1em 0;
padding: 0;
background-color: #f2f2f2;
border-bottom: 1px solid #ccc; }
#nav ul {
list-style: none;
width: 800px;
margin: 0 auto;
padding: 0; }
#nav li {
float: left; }
#nav li a {
display: block;
padding: 8px 15px;
text-decoration: none;
font-weight: bold;
color: #069;
border-right: 1px solid #ccc; }
#nav li:first-child a {
border-left: 1px solid #ccc; }
#nav li a:hover {
color: #c00;
background-color: #fff; }
#tipid, fieldset {
display: none;
}
label {
display: block;
}
fieldset {
border: 0;
width: 50%;
}
textarea {
width: 100%;
height: 5em;
}
.active {
position: fixed;
left: 54%;
bottom: 2em;
}
</style>
<script src="nav.jsp"></script>
</head>
<body>
<div id="nav">
<ul>
<li><a href="welcome.jsp">My Data</a></li>
<li><a href="logout.jsp">Logout</a></li>
</ul>
</div>
<% ResponseTracker tracker = new ResponseTracker() ;
int tipid = 0;
if(request.getParameter("tipid") != null)
{
tipid = Integer.parseInt(request.getParameter("tipid"));
}
if (tipid == 0){ response.sendRedirect("/MASC/index.jsp");}
%>
<h1> Tip report for <% out.print(tracker.getDateStringByTipId(tipid));
tracker.finalize();%></h1>
<%if(request.getParameter("failed") != null)
{
%> <br><font color=\"red\"> Login failed</font> <%
}
%>
<form action="ResponseDB" method="post">
<input name="tipid" id="tipid" value="<% out.println(tipid);%>">
Any events to report?
<label><input type="radio" name="events" onclick="checkEvent(this.value,if_events_yes,submit)" id="events_yes" value="yes">Yes</label>
<label><input type="radio" name="events" onclick="checkEvent(this.value,if_events_yes,submit)" id="events_no" value="no" checked>No</label>
<fieldset id="if_events_yes">
<label>Firewall:<br>
<textarea name="firewall"></textarea></label>
<label>IDS/IPS:<br>
<textarea name="ids"></textarea></label>
<label>Web Content Filtering/Proxy:<br>
<textarea name="proxy"></textarea></label>
<label>Deep packet inspection:<br>
<textarea name="dpi"></textarea></label>
<label>Network malware protection devices (FireEye, Damballa, etc.):<br>
<textarea name="net_malware"></textarea></label>
<label>Anti-virus software:<br>
<textarea name="av"></textarea></label>
<label>Forensics Tools:<br>
<textarea name="forensics"></textarea></label>
<label>Tripwire:<br>
<textarea name="tripwire"></textarea></label>
<label>Memory Dumps:<br>
<textarea name="memdumps"></textarea></label>
<label>Email logs:<br>
<textarea name="email_logs"></textarea></label>
</fieldset>
<input type="submit" id="submit" value="Submit">
</form>
<script>
function checkEvent(el,y,s) {
console.log("infunc");
if (el == 'yes') {
y.style.display = "block";
s.className = "active";
}
else {
y.style.display = "none";
s.className = "";
}
}
onsubmit=function() {
if (document.getElementById('events_yes').checked == true) {
var t = document.getElementsByTagName("textarea"),
l = 0;
for(var i = 0; i < t.length; i++){
l = l + t[i].value.trim();
}
if (l < 1) {
alert("Please re-enter");
return false;
}
}
}
</script>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.