【问题标题】:I am trying to print result on same page using ajax query in java servlet form [duplicate]我正在尝试使用 java servlet 表单中的 ajax 查询在同一页面上打印结果 [重复]
【发布时间】:2018-01-27 19:51:13
【问题描述】:

这是我的 JSP 代码。虽然我做了 ajax 查询,但它不起作用,这意味着我在成功注册后没有在同一页面上得到结果。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"%></script>
<script type="text/javascript"/>
    function post()
     {
    var FirstName = document.getElementByName("FirstName").value;
    var Lastname = document.getElementByName("Lastname").value;
    var Email_Id = document.getElementByName("Email_Id").value;
    var Gender = document.getElementByName("Gender").value;
    var Comments = document.getElementByName("Comments").value;
    if(FirstName && Lastname && Email_Id && Gender && Comments)
    {
        $.ajax
        ({
            type: 'post',
            url: 'RegisterServlet.java',
            data:
        {
            user_FirstName:FirstName,
            user_Lastname:Lastname,
            user_Email:Email_Id,
            user_Gender:Gender,
            user_Comments:Comments
        },
        success: function (response)
        {
            document.getElementByName("insert").innerHTML="Form Successfully Registerd";
        }


        })  
        }
    return false;
    }
</script>

<body>
<form action="register" method="post">

        FirstName:*<input type="text" name="FirstName" required="required" /><br/>
        Lastname:*<input type="text" name="Lastname" required="required" /><br/>
        Email_Id:*<input type="text" name="Email_Id" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" required="required"  /><br/>

        Gender:<select name="Gender">
            <option>Male</option>
            <option>Female</option>
        </select> <br/>
        Comment:*<input type="text" name="Comments" required="required"/><br/>
        <input type="submit" value="Submit" name="insert"/>

    </form>
</body>
</html>

我想在同一页面上打印成功消息而不重新加载新页面。我是否还需要更改我的 servlet 文件中的某些内容?

【问题讨论】:

    标签: jquery ajax jsp servlets


    【解决方案1】:

    您实际上从未使用您的 ajax 代码调用 post 函数或阻止表单加载注册页面。

    如果您调用了 post 函数然后检查了您的控制台,您可能会看到类似 Uncaught TypeError: document.getElementByName is not a function 的内容,因为该函数是 getElementsByName(注意 s),它会返回需要考虑的元素列表。 由于您使用的是 jQuery,因此您可以在表单上使用 .serialize() 来获取其字段数据。

    $(document).ready(function(){
    
        $('form').submit(function()
        {
            $.ajax
            ({
                type: 'post',
                url: 'RegisterServlet.java',
                data: $(this).serialize(),
                success: function (response)
                {
                    document.getElementsByName("insert")[0].innerHTML="Form Successfully Registerd";
                }
            }); 
            return false;
        });
    });
    

    【讨论】:

    • 如果我将您的答案代码复制到我的 JSP 代码中,它会起作用吗?
    猜你喜欢
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2014-04-03
    • 1970-01-01
    相关资源
    最近更新 更多