-1

我创建了一个 JSP 页面来插入用户信息并显示插入的信息:

要获取我的插入数据页面,我有一个链接,例如:mysite/insertInfo

首先接受用户信息并验证它们。如果有效的提交表单。否则当发生验证错误时,重定向到同一页面并且不会丢失任何表单数据。在 servlet(或控制器类)处保存数据并重定向到同一页面。我使用 jQuery 进行重定向,如下所示:

url = baseURL + "/saveUserInfo";
params = {};
params.name = $(".txtname').val();
params.email = $('.txtemail').val();
ajax(url, params, false, function(data) {
    $('.form').empty();
    if (data) {
        // SHOW SUCCESS INFO
        html = [];
        html.push("<div>Success</div>");
        $('. form').append(html.join(''));
    }
});

其次,我将展示这些之前插入的内容。是的,这很简单。

我的问题是,当用户 再次访问mysite/insertInfo页面 时,会有一个带有插入数据的表单。不,我不想再见到他们。我不想重定向到另一个页面,例如:success.jsp。我只想使用一个 JSP 文件。作为Resetting a multi-stage form with jQuery 的描述,我用它进行了测试。

就像$('#myform').trigger("reset");在提交此表格之前一样。它很好并重置。但是当我到达成功页面并通过链接返回插入表单页面时,我会看到带有先前插入数据的表单。如何处理?任何建议,将不胜感激。我认为我的浏览器可能会缓存它,但我不确定。

4

2 回答 2

1

成功保存数据后,添加此项以清除每个输入字段

$('form input').val("");
于 2013-07-13T10:43:18.740 回答
0

现在,我的问题被罚款,通过使用 http://www.w3schools.com/html/html5_webstorage.asp中的 sessionStorage 。添加以下脚本真的很好..

  <script type="text/javascript">
        function insert_previous_datas() {
            var name = sessionStorage.getItem("name");
            if (name) {
                $('#inputName').val(name);
            }
            var email = sessionStorage.getItem("email");
            if (email){
                $('#inputEmail').val(email);
            }
        }
        window.onload = function() {
            var isForReview = sessionStorage.getItem("forReview"); 
            if (isForReview) {
                insert_previous_datas();
                sessionStorage.removeItem("forReview");
            }
            var isForValidate  = sessionStorage.getItem("forValidate");
            if (isForValidate) {
                insert_previous_datas();
                var errorMsgName = sessionStorage.getItem("errorMsgName");
                if (errorMsgName) {
                    $('#errorMsgName').addClass("error");
                    $('#errorMsgName').text(errorMsgName);
                }
                var errorMsgEmail = sessionStorage.getItem("errorMsgEmail");
                if (errorMsgEmail) {
                    $('#errorMsgEmail').addClass("error");
                    $('#errorMsgEmail').text(errorMsgEmail);
                }
                sessionStorage.removeItem("forValidate");
            }
        }
    </script>
于 2013-07-15T05:00:55.557 回答