加载时运行操作并保持在同一页面上
Run action on load and stay on same page
我目前正试图在应用程序中加载页面时在grails控制器中运行一个操作,该操作将启动线程并继续执行任务。我仍然能够在中成功地实现这一点。这是我的代码:
$(document).ready(function(){
var $form = $("#background_thread");
$form.submit(function(e){
e.preventDefault();
$.post($(this).attr("background"), $(this).serialize(), function(data){
alert("should work" + data)
});
return false;
});
});
我一辈子都搞不明白为什么它不起作用。有没有一些简单的语法我忽略了,或者我应该用不同的方式来做这件事?
更新:
我的表单id是#background_thread
,我正在尝试异步执行,以便页面仍然保持不变,并且我的操作将运行。
我的脚本已运行,但在$form.submit(function(e){
上失败,无法通过。
您需要防止已生成事件的默认行为。
$form.submit(function(e){
e.preventDefault();
// your code
}
更新:
一旦整个脚本正常工作,您肯定需要添加以上内容。此外,请将您的标记添加到问题中。几个需要确定的基本问题:
#background_thread是您表单的id吗?
在Chrome Inspector(或类似工具)的网络选项卡中,请求是否被触发?
标记是异步传递的吗?如果是,您将需要使用.on来永久附加事件,而不仅仅是一个基本的选择器?
更新2:
您的表单本身是异步传递的,因此您的事件attaqchement必须更改为:
$(document).ready(function(){
$("body").on("submit", "#background_thread", function(e){
e.preventDefault();
$.post($(this).attr("background"), $(this).serialize(), function(data){
alert("should work" + data)
});
return false;
});
});
所以,为了解释,您的事件附件是在文档准备期间发生的。文档就绪激发,但表单尚未传递到DOM,因此它没有附件。因此,在整个页面呈现到浏览器的生命周期内,您可以使用on()将该事件永久附加到该元素。
注意:我把它附在了body上,在那一点上开始听submit,在实践中,由于多种原因,你会不这样做,你会把它附到表单的AJAX替换的最外面的点上,本质上,是离表单最近的父级,在初始页面加载时就会知道。
我希望这对你的申请有用,祝你好运。
相关文章:
- 如何获取不属于我项目的上一页的URL
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 使用Booklet Jquery插件,我如何验证最后一页是否显示
- 如何在一页网站中使用PHP重定向到一个页面
- Javascript并不是显示在每一页上
- 如何在一页上显示多个Highcharts图表
- jQuery分页下一页和上一页按钮在点击零或超过最后一页后失败
- 如何为AngularJS制作智能表中第一页和最后一页的跳过按钮
- Bootstrap一页导航Fluid网站最小化问题
- 返回上一页时,Javascript仍处于活动状态
- 将jsp重定向到servlet,然后重定向到下一页
- 如何在重定向到asp.net中单击按钮的下一页之前应用javascript警报
- 传递表单值并移动到另一页
- 如何获取数组详细信息另一页
- 警报中的window.location必须重定向到上一页
- 一页签出在Magento版本1.7.0.2中不起作用
- 获取/保留上一页's具有SmoothState的URL
- 简单的一页水平滚动
- 等待Javascript网页抓取功能完成,然后再运行下一页
- 如何运行“加二”;图像幻灯片放映”;在一页上