我有一个 jsp 表单,它显示为用户的数据输入屏幕。表单上有 2 个输入。根据组合选择输入输入字段“A”之一的数据。其中另一个输入是简单的输入字段“B”。有两个提交按钮,其中一个保存字段“A”的值。和其他字段“B”。
问题是,当已经为“B”输入数据时,如果单击“A”的提交按钮,页面将刷新,并且为“A”输入的数据将保存在数据库中(按预期工作)。但是,由于提交后页面刷新,为“B”输入的值会丢失。
我的问题是如何避免在提交“A”时重置已提交的“B”值。
最佳答案
我建议采用以下三种方法之一:
1) 将两个值发送到 servlet,并在返回时传回请求范围内的 B 值,如下所示:
您的文件中将包含以下行
request.setAttribute("bFieldValue", bFieldValue);
然后在 JSP 中您可以使用如下表达式语言访问这些数据
${accountList}
2)将值存储在本地存储中(HTML5)
localStorage.setItem("fieldBValue", value);
然后在刷新时检索:
document.getElementById("fieldB").innerHTML = localStorage.getItem("fieldBValue");
3) AJAX 请求(感谢 Sid 的建议)
您可以使用 jQuery AJAX 仅提交表单 - 这会停止页面刷新,因此是理想的选择。像这样的事情:
$("#formB").ajax( {
type: "POST",
url: '/endpoint'
data: formB.serialize(),
success: function(response){
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
}
} );
并像这样提交表单来触发上面的JS:
$("#formB").submit(); //Submit the FORM
关于javascript - 专用提交按钮使用相同的 servlet 将表单数据单独保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28021566/