我在引导模式中有一个正在使用ajax处理的表单。如果表单验证,它将关闭模式或按预期显示验证错误。但是,如果根据控制器中保存的布尔值满足条件,我想在模式隐藏动画完成后重定向用户。尽管条件无法按书面形式工作,但它可以让您看到我正在尝试完成的内容:
$(document).ready(function() {
$('#modal-window').modal({remote: true});
$('#modal-window').modal('show');
$('#modal-window').on('hidden', function(){
var saved = <%= @bool %>;
if(saved == "true"){
$(window.location.replace("<%= some_url %>"));}
});
})
您正在设置保存到布尔值(可能 - 您的@bool
变量中的任何内容)
var saved = <%= @bool %>;
但随后与字符串"true"
进行比较
if(saved == "true"){
因此,如果您将第二行替换为
if(saved){
它会工作
替换
var saved = <%= @bool %>;
跟
var saved = "<%= @bool %>";
你把这个代码发布在哪里?如果您的表单未index.html.erb
那么在使用 remote: true
时,您将需要一个index.js.erb
文件来提供您希望在示例中运行的 javascript。另外,不要忘记使用j
转义返回 URL <%=j some_url %>
.