Javascript函数没有被调用

时间:2014-12-15 08:30:36

标签: javascript

我必须在提交表单之前使用函数来设置数据,我使用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>

3 个答案:

答案 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" />