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