gpt4 book ai didi

javascript - 在Rails中,如何调用AJAX函数并在完成后刷新页面?

转载 作者:行者123 更新时间:2023-12-03 06:18:52 25 4
gpt4 key购买 nike

我有一个表单,如果用户更改其中一个下拉列表中的值,则需要更改表单上的一些控件。目前的设置方式...

  1. 下拉列表更改时,执行 AJAX 调用以使用新值保存表单
  2. 在我的对象上执行“update”方法之前,我会标记与已更改的新值无关的已删除字段
  3. 在 AJAX 调用的 success 函数中,它执行 location.reload()

当前的问题是,有时会在自动保存方法完成之前重新加载。如何才能在自动保存完全完成之前重新加载页面?我不想在 $.ajax 中设置 async: false 因为它会在向用户显示消息并告诉他们请稍等之前卡住整个页面。如果我忘记了下面要包含的任何代码,请告诉我,谢谢!

报告.咖啡

  autoSavePost = (reload) ->
console.log('autosave executed');
$.ajax
type: 'PUT'
url: '/reports/autosave'
data: $('#report-form').serialize()
dataType: 'script'
success: (data) ->
if reload
setTimeout(location.reload(), 5000);
return true
error: (xhr, ajaxOptions, thrownError) ->
console.log xhr.responseText.substr(0,1500)
return false
# schedule the next autosave
if $('#auto-save').length
setTimeout autoSavePost, 60000
else
return false

return

$ ->
$(document).on 'change', '#report_position_id', (evt) ->
$.blockUI({ message: '<h5>Please wait, "Position Graded" is being changed...</h5>' });
# grey out screen with message until page reloads.
autoSavePost(true)
return

最佳答案

从 Controller 函数渲染js,渲染的js文件调用window.reload。

或者 render head :ok 会触发ajax成功,然后window.reload

关于javascript - 在Rails中,如何调用AJAX函数并在完成后刷新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38956080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com