当前位置: 首页 > 知识库问答 >
问题:

如何在中的第一个下拉列表中停止提交。jsp?

上官扬
2023-03-14

我有一个名为add.jsp的文件,我用Java将数据添加到数据库中。

在这个文件中,我使用第一个下拉列表从数据库中获取联赛,该联赛的球队显示在所选联赛的第二和第三个下拉列表中。

表格开始如下。

由于onChange="this.form.submit();"位于第一个下拉列表部分,当进行选择时,表单提交并转到addemp servlet。

当我从第一个下拉列表中选择联赛时,如何防止表单提交?在选择所有数据并登录后,我如何才能在单击底部的提交按钮时将其转到addemp servlet?

我的代码如下身体标签之间...

截图在这里

没有onChange事件截图在这里

<div class="row justify-content-center">
    <div class="col-sm-4">


        <form class="form-group" action="addemp" method="post">


            <label class="form-label" for="name">Choose a League </label> <select
                name="leagues" id="leagues" class="form-control mb-3"
                style="width: 200px;" onchange="this.form.submit();">
                <option value="0">Select League</option>
                <%
        Connection conn;
        Statement stm;
        ResultSet rs;

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/teams", "root", "Fener2013");
            String query = "select * from leagues";
            stm = conn.createStatement();
            rs = stm.executeQuery(query);
            while (rs.next()) {
        %>
                <option value="<%=rs.getInt("league_id")%>"
                    <%
            if(request.getParameter("leagues")!= null) 
            {
                if(rs.getInt("league_id")==Integer.parseInt(request.getParameter("leagues"))) 
                {
                    out.print("selected");
                }
            }
            %>><%=rs.getString("league_name")%></option>
                <%
            }
        } 
        catch (Exception ex) {
        ex.printStackTrace();
        }
            %>
            </select> <label class="form-label" for="name">Home Team</label> <select
                name="home_team" class="form-control mb-3" style="width: 200px;">
                <option value="0">Select Home Team</option>
                <%
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/teams", "root", "Fener2013");
            String query = "select * from teams where league_id=?";
            PreparedStatement psmt = con.prepareStatement(query);
            psmt.setString(1, request.getParameter("leagues"));
            ResultSet rset = psmt.executeQuery();
            while(rset.next()) 
            {
            %>
                <option value="<%=rset.getInt("team_id")%>">
                    <%=rset.getString("team_name")%></option>
                <%
            }
        } 
        catch (Exception ex) {
        ex.printStackTrace();
        }
            %>
            </select> <label class="form-label" for="name">Away Team</label> <select
                name="home_team" class="form-control mb-3" style="width: 200px;">
                <option value="0">Select Away Team</option>
                <%
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/teams", "root", "Fener2013");
            String query = "select * from teams where league_id=?";
            PreparedStatement psmt = con.prepareStatement(query);
            psmt.setString(1, request.getParameter("leagues"));
            ResultSet rset = psmt.executeQuery();
            while(rset.next()) 
            {
            %>
                <option value="<%=rset.getInt("team_id")%>">
                    <%=rset.getString("team_name")%></option>
                <%
            }
        } 
        catch (Exception ex) {
        ex.printStackTrace();
        }
            %>
            </select> <label class="form-label" for="name">Enter Match Date
                (YYYY-MM-DD)</label> <input name="match_date" type="text"
                class="form-control mb-3" style="width: 200px"> <label
                class="form-label" for="name">Home Score</label> <input
                name="home_score" type="text" class="form-control mb-3"
                style="width: 200px;"> <label class="form-label"
                for="name">Away Score</label> <input name="away_score" type="text"
                class="form-control mb-3" style="width: 200px;"> <label
                class="form-label" for="name">Home Team HT Score</label> <input
                name="home_ht_score" type="text" class="form-control mb-3"
                style="width: 200px;"> <label class="form-label"
                for="name">Away Team HT Score</label> <input name="away_ht_score"
                type="text" class="form-control mb-3" style="width: 200px;">

            <label class="form-label" for="name">Week</label> <input
                name="week" type="text" class="form-control mb-3"
                style="width: 200px;">

            <div class="d-md-flex justify-content-md-end">
                <button class="btn btn-primary mb-4" type="submit">Save
                    Match Result</button>
            </div>
        </form>
    </div>
</div>

最好的问候,

共有1个答案

慕容弘懿
2023-03-14

首先,我想知道你为什么在选择上添加onChange?你想在onChange活动上做些什么吗?如果我考虑当前给定的信息,然后从选择中删除onChange。提交按钮已经很好去.它的类型是提交它应该工作。

如果它不起作用,让我知道更多的细节,我会试着解决你的问题。

从这里更新:

您需要创建一个javascript函数,并在更改first select时调用它。此函数将在当前url中重新加载当前页面的选定值。

funtion onLeagueChange(){
  var leagueValue = document.getElementById("leagues").value;
  window.location = your_url + "?leagues="+value;
}

这是解决您的问题而不使用和其他文件。

 类似资料:
  • 问题内容: 我正在JSP中创建一个页面,其中有一个下拉列表,一旦用户选择了一个值,他就必须单击go按钮,然后将该值发送到Servlet。 我该如何做才能在变更时做到呢?例如,当用户选择John时,将从数据库中检索出他的所有详细信息并显示出来。我希望系统无需单击“执行”按钮即可执行此操作。 问题答案: 只需询问JavaScript的帮助。

  • 我一直在Luhn算法-JavaScript上使用这种背景颜色来帮助构建类似的网页。然而,与原始海报不同,如果在任何字段中有任何无效的输入,我希望代码不要提交。我仍然希望输入字段改变颜色(绿色表示有效,红色表示无效)。 我相信我可以使用混合模式修复名称和电子邮件(对于名称-“[a-Za-z!#$%” 任何帮助都将不胜感激,我为您可能需要的任何丢失的细节道歉,这是我在这里的第一个问题。

  • 问题内容: 我是AngularJS的初学者,目前我正在Django中开发一个Web应用程序,在该应用程序中我可以使用AngularJS作为前端部分。我的问题是,用作用域中的对象填充的下拉列表始终以空白元素开头(如果我从列表中选择一个,该问题就不存在了)。这会产生问题,因为如果用户不选择任何内容,那么POST请求通常将不再起作用。我想知道如何拥有类似预选值或类似的东西。这是我的代码的一部分: 选择标

  • 问题内容: 我需要使用JavaScript根据下拉菜单A中的选择更改下拉菜单B的内容。没有涉及到数据库查询- 我事先知道应该在A中选择B的内容。我已经找到了一些使用AJAX的示例,但是由于没有涉及到数据库查询,所以没有必要。谁能为我指出一些示例代码以实现此目的? 问题答案: function configureDropDownLists(ddl1, ddl2) {

  • 问题内容: 我正在编写一些javascript(lubricmonkey /用户脚本),它将一些输入字段插入网站上的表单中。 问题是,我不希望这些输入字段以任何方式影响表单,我不希望它们在提交表单时提交,我只希望我的JavaScript可以访问它们的值。 有什么办法可以将一些输入字段添加到表单的中间,而在提交表单时不提交它们呢? 显然,理想的情况是输入字段不在form元素中,但是我希望结果页面的布

  • 我正在使用netbeans和mysql用java制作一个web应用程序。数据库“Categroy”和“SubCat”中有两个表。还有实体类和会话bean来从数据库中提取数据。jsp表单中有两个下拉列表。我希望当在第一个下拉列表中选择一个类别时,它的类别id在servlet中消失,并且从那里开始,只有相关子类别的列表显示在第二个下拉列表中。我怎么能做到? 我的JSP代码如下 数据库中的所有类别都显示