Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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
Javascript 当用户单击提交按钮时,需要发布并关闭窗口_Javascript_Html_Ruby On Rails - Fatal编程技术网

Javascript 当用户单击提交按钮时,需要发布并关闭窗口

Javascript 当用户单击提交按钮时,需要发布并关闭窗口,javascript,html,ruby-on-rails,Javascript,Html,Ruby On Rails,现在我有以下几点: <%= submit_tag 'Save' ,{:onClick => "window.close()"} %> 如果没有:onClick=>“window.close()”,表单将按预期进行发布。以后只需要关闭它 谢谢 编辑:我的解决方案是让控制器返回字符串文字: if (params[:search]) ... render :text => '<body onload="window.close()"></bo

现在我有以下几点:

<%= submit_tag 'Save' ,{:onClick => "window.close()"} %>
如果没有
:onClick=>“window.close()”
,表单将按预期进行发布。以后只需要关闭它

谢谢

编辑:我的解决方案是让控制器返回字符串文字:

if (params[:search])
    ...
    render :text => '<body onload="window.close()"></body>'
end
if(参数[:搜索])
...
呈现:文本=>“”
结束
这将跳过任何布局/视图项,只渲染自动关闭的空实体

function onSubmit(){
    $.ajax({
        //POST info and URL etc goes here
    }).done(function(){
        window.close();
    });
}
您需要指定jQueryAjax api所需的所有参数(url、数据等)

如果您在没有ajax的情况下提交,您将转到您提交到的页面,并且将不再控制您的窗口,除非您控制目标页面,在这种情况下,您应该添加窗口。靠近目标页面的脚本:

<script>
    window.close();
</script>

window.close();
您需要指定jQueryAjax api所需的所有参数(url、数据等)

如果您在没有ajax的情况下提交,您将转到您提交到的页面,并且将不再控制您的窗口,除非您控制目标页面,在这种情况下,您应该添加窗口。靠近目标页面的脚本:

<script>
    window.close();
</script>

window.close();
返回即可

通过服务器,在窗口关闭之前,您的帖子一定会通过这种方式发送。因此,不是从提交文档中关闭,而是在服务器作为答复接收的文档中关闭。此外,如果您希望以后关闭窗口,您可能会考虑根据您想要实现的内容来提交IFRAME。

只返回



通过服务器,在窗口关闭之前,您的帖子一定会通过这种方式发送。因此,不是从提交文档中关闭,而是在服务器作为答复接收的文档中关闭。另外,如果您希望以后关闭窗口,您可能会考虑根据您想要实现的内容来发布IFRAME。

提交后直接关闭窗口是一个坏主意,因为这可能取决于浏览器等——取消请求。它应该在回调的末尾。更改为包含ajax调用的框架,该调用将在关闭之前等待请求完成,现在应该可以工作了-只是,您在结尾缺少了一个“'),并且还应该添加您编写的是伪代码/应该使用哪个库(记不起使用“完成”的库了),因为大多数人都使用“成功”,但我非常想了解一些新的东西;))在操作完成后调用(即,不管成功/失败)。不过,谢谢你的指点,我会相应地更新。谢谢你的想法,我所做的就是让目标页面成为一个结束事件。它的加载速度足够快,看起来相当不错,在提交后直接关闭窗口是个坏主意,因为这可能会取消请求(取决于浏览器等),因为ajax是异步的。它应该在回调的末尾。更改为包含ajax调用的框架,该调用将在关闭之前等待请求完成,现在应该可以工作了-只是,您在结尾缺少了一个“'),并且还应该添加您编写的是伪代码/应该使用哪个库(记不起使用“完成”的库了),因为大多数人都使用“成功”,但我非常想了解一些新的东西;))在操作完成后调用(即,不管成功/失败)。不过,谢谢你的指点,我会相应地更新。谢谢你的想法,我所做的就是让目标页面成为一个结束事件。它加载的速度足够快,看起来相当不错。也许选民想解释一下我的答案有什么不好,这样我们都可以从中学习?谢谢,也许是因为你错过了父母?如果你能控制目的地,这仍然是一个可行的解决方案page@Nicol非常感谢!的确是我的失败;)此外,这是我所知道的唯一一个(除了使用不同的语法,比如脚本标记)简单的解决方案——如果你不能控制目的地,即使是JS事件监听器也无法始终工作,因为同源策略和其他一些浏览器几乎每天都会对其产生更多的偏执。谢谢你的想法。我最后做的只是渲染一个文本字符串:)我在OPJust中包含了详细信息一点旁注:这里不需要结束标记-虽然它在语法上更为正确,但浏览器(至少我所知道的所有浏览器)不存在缺少(以及缺少或标记)的问题。但是,只有当你想保存最后几个字节(这对你来说可能不是问题)的时候,也许投票人想解释我的答案有什么不好的地方,这样我们都可以从中学习?谢谢,也许是因为你错过了父母?如果你能控制目的地,这仍然是一个可行的解决方案page@Nicol非常感谢!的确是我的失败;)此外,这是我所知道的唯一一个(除了使用不同的语法,比如脚本标记)简单的解决方案——如果你不能控制目的地,即使是JS事件监听器也无法始终工作,因为同源策略和其他一些浏览器几乎每天都会对其产生更多的偏执。谢谢你的想法。我最后做的只是渲染一个文本字符串:)我在OPJust中包含了详细信息一点旁注:这里不需要结束标记-虽然它在语法上更为正确,但浏览器(至少我所知道的所有浏览器)不存在缺少(以及缺少或标记)的问题。但是,只有当您想保存最后几个字节时(这对您来说可能不是问题)