Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在使用模型对话框和AJAX进行编辑后,刷新网页上的值的适当方式是什么?_Jquery_Jsp_Bootstrap 4 - Fatal编程技术网

Jquery 在使用模型对话框和AJAX进行编辑后,刷新网页上的值的适当方式是什么?

Jquery 在使用模型对话框和AJAX进行编辑后,刷新网页上的值的适当方式是什么?,jquery,jsp,bootstrap-4,Jquery,Jsp,Bootstrap 4,我的应用程序使用JSP/JQuery/Bootstrap。我将使用一个简化的示例来帮助使我的问题尽可能简单 假设我有一个查看用户页面ex./myapp/User/55,它将用户的属性显示为只读字段,例如名字、姓氏、电子邮件地址,并且有一个编辑按钮 单击“编辑”会打开一个模式对话框,其中包含填充了每个值的输入字段和“保存更改”按钮。输入新值后,单击“保存更改”按钮。这将导致向web服务器发送AJAX POST,并返回一条成功消息 在成功发布AJAX后,我隐藏了模式对话框,并在查看用户页面上显示成功

我的应用程序使用JSP/JQuery/Bootstrap。我将使用一个简化的示例来帮助使我的问题尽可能简单

假设我有一个查看用户页面ex./myapp/User/55,它将用户的属性显示为只读字段,例如名字、姓氏、电子邮件地址,并且有一个编辑按钮

单击“编辑”会打开一个模式对话框,其中包含填充了每个值的输入字段和“保存更改”按钮。输入新值后,单击“保存更改”按钮。这将导致向web服务器发送AJAX POST,并返回一条成功消息

在成功发布AJAX后,我隐藏了模式对话框,并在查看用户页面上显示成功警报

问题是,“查看用户”页面上的只读字段尚未使用新值刷新

我想在成功发布后,我可以强制刷新查看用户页面,而不是让对话框不可见。。。例如,只需重新加载/myapp/user/55。。。但是我不会看到页面内的成功消息,重新加载整个页面也是不雅观的


我的问题是,刷新只读属性字段以便不必重新加载整个页面的适当方法是什么

在ajax调用的成功字段中使用:

location.reload(true);
注意:-对于Jquery的post,在函数调用的第二个参数中使用此选项,当post成功运行第二个函数调用并产生结果时

'但是我不会看到页面内的成功消息':-使用Jquery的post调用successfull post上的函数,然后可以在location.reloadtrue codes.alert之前显示成功警报,并在成功的Jqiery的post之后在名为oafter的函数中刷新


参考:

如果使用ajax推送用户的新数据,则可以使用JQuery或vanilla JS更新只读字段

JQuery:

$("#user_last_name").val(@user.last_name)
JS:


以上假设您的字段是输入。如果字段是span,则将JQuery从.val更改为.text,将JS从.value更改为.textContent。

您需要以某种方式更新相关字段中的html。 例如,在POST上接收成功响应时,您可以使用来自它们或来自准备发送数据和设置innerHTML的值

document.forms.dialog.onsubmit=functionev{ 防止违约; //在这里制作AJAX window.firstName.innerHTML=ev.target.firstName.value; } 上。价值 模拟提交{firstName:'Next value'}
@moseisley询问更新html的方法,而不必重新加载整个页面。@nikhilsugandh感谢您的建议,这并不完全是我想要的,但值得考虑。清楚地说,您的意思是,在成功发布AJAX后,我会显示一条alertSave was successful消息,然后在消息被取消后重新加载age,对吗?我正在考虑一个选项,帖子将解析来自结果成功的消息,可能还有其他警告,并在页面重新加载时将它们提交回服务器,例如:/myapp/user/55?successsg=All good&warningMsg=注意,两个用户具有相同的电子邮件地址,并在新页面上显示这些消息
const lastNameField = document.getElementById('user_last_name')
lastNameField.value = @user.last_name