我必须在提交表单之前使用函数来设置数据,我使用onclick来调用我的函数,但是当我单击按钮时,所有都是在没有通过javascript函数的情况下提交的。 这是我的代码:
<html>
<head>
<title>Biblioteca Jsp</title>
</head>
<script>
var checkedBookList = [];
function checkBook(id) {
var check = document.getElementById(id);
checkedBookList[id] = check.checked;
}
function submit(){
document.forms["frBookaBook"].selectedBooks = checkedBookList;
alert("");
document.forms["frBookaBook"].submit();
}
</script>
<body>
<h1 align="center">Elenco libri</h1>
<hr>
<table align="center" cellspacing="5" cellpadding="5" border="1">
<tr>
<th><font color="#822222"> Nome </font></th>
<th><font color="#822222"> Autore </font></th>
<th><font color="#822222"> Tipologia </font></th>
</tr>
<% List<MyBook> books = (List<MyBook>)session.getAttribute("bookList");
String listBook = null;
if(books!=null && !books.isEmpty()){
for (MyBook myBook : books) { %>
<tr>
<td><%=myBook.getBkName() %></td>
<td><%=myBook.getBkAuthor() %></td>
<td><%=myBook.getBkClass() %></td>
<td><input type="checkbox" onChange="checkBook('<%=myBook.getBkID()%>')"
id="<%=myBook.getBkID()%>" name="<%=myBook.getBkName()%>" <% if(myBook.getBkBusy()!=null) { %> disabled="disabled" /> Busy <%} else{ %> /> <%}%>
</td>
</tr>
<% }
}%>
</table>
<hr>
<form id="frBookaBook" action="ServletBiblio" method="post" onsubmit="return false">
<div align="center">
<input type="hidden"
id="actionToDo" name="actionToDo"
value="selectedBooks"/>
<input type="button"
id="Prenota" name="Prenota" onclick="submit()"
value="Prenota" />
</div>
</form>
</body>
</html>
答案 0 :(得分:2)
将提交的功能名称更改为提交或其他任何内容&#39;提交&#39;保留..
<html>
<head>
<script>
var checkedBookList = [];
function checkBook(id) {
var check = document.getElementById(id);
checkedBookList[id] = check.checked;
}
function submitt(){
document.forms["frBookaBook"].selectedBooks = checkedBookList;
alert("");
document.forms["frBookaBook"].submit();
return true;
}
</script>
</head>
<body>
<form id="frBookaBook" action="ServletBiblio" method="post" onsubmit="return submitt()">
<div align="center">
<input type="hidden"
id="actionToDo" name="actionToDo"
value="selectedBooks"/>
<input type="submit"
id="Prenota" name="Prenota"
value="Prenota" />
</div>
</form>
</body>
</html>
答案 1 :(得分:0)
Alok速度更快,答案更好。 (编辑)
将函数submit()重命名为eg beforeSubmit()。在这种情况下,提交似乎是保留的。您还可以考虑使用表单的onsubmit事件,而不是单击按钮。也许你的按钮应该是type =“submit”......
答案 2 :(得分:-2)
你必须在函数重载之前禁用表单。
<script type="text/javascript">
$(document).ready(function(){
$('#form-licence').submit(function() {
return false;
});
});
</script>
代码HTML
<input type="button" id="Prenota" name="Prenota" onclick="submit(); return false;" value="Prenota" />