javascript - 专用提交按钮使用相同的 servlet 将表单数据单独保存到数据库

标签 javascript jsp

我有一个 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/

相关文章:

javascript - RequireJS - 在同一文件中调用函数

javascript - 在 Sails 中访问 JSON 请求参数

javascript - 将 Json 解析为状态

html - 使用 CSS 从表格制作网格画廊

Java 错误 : Only a type can be imported. XYZ 解析为一个包

java - 为一个 Servlet 创建一个动态前端 JSP 页面,同时将 Servlet 的输出显示到 JSP 页面

javascript - 在两个现有元素之间放置并适配 n 个元素

javascript - 在 AngularJS 中,一次点击两次调用是可以接受的方法吗?

java - 如何使用 Jquery 按值而不是按键打印 HashMap

java - EJBTransactionRolledbackException : No entity found for query