我的Ruby on Rails视图文件上有一个按钮。
首先,当单击该按钮时,将进行Ajax调用,该调用将作为响应提供JSON字符串。到目前为止,我完成了这项任务。
这就是我被卡住的地方:该按钮还会将我重定向到同一个控制器的另一个动作。现在我想将JavaScript接收的JSON字符串作为参数发送给该操作。
有什么方法吗?
答案 0 :(得分:3)
你的ajax调用应该是这样的:
... doing stuff before ...
$.ajax(
url:'url-to-script',
success: function(data) {
var json = JSON.parse(data);
$('#hidden-field').val(json); // set a hidden field in your form
$('#from-id').submit();
}
);
$('#submit-button').attr('disabled', 'true'); // disable the button
// set some spinny animation to notify the user that you are waiting.
// time out after a while if you don't get a response
... doing stuff after ...
基本上我们关闭ajax事件,禁用按钮并通知您正在等待的用户。当调用返回时,您的回调方法将表单提交给rails。您还可以为ajax调用设置超时,并在必要时让用户重新提交。您可以随意处理错误案例。