如何重置当前页面之前的表单数据

时间:2013-07-13 10:35:25

标签: javascript jquery-ui jquery

我创建了一个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");。很好,重置。但是当我到达成功页面并通过链接返回插入表单页面时,我看到带有先前插入数据的表单。怎么处理?任何建议,将不胜感激。我认为我的浏览器可以缓存它,但我不确定。

2 个答案:

答案 0 :(得分:1)

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

$('form input').val("");

答案 1 :(得分: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>