如何在ruby on rails中对onclick javascript调用操作
How to call action on onclick-javascript in ruby on rails
我想在controllers/static_pages_controller.rb:中执行一个操作do文件
def fileopen
my_file = File.new("public/CHNAME1.txt","w")
my_file.write "'tfasf"
my_file.close
end
(当我在助手中定义它并在视图中调用它时,它工作得很好。)
在myview.html.erb中,我想要一些类似<button id="button" onclick="readfile()" />
的东西我该怎么做?我在application.js 中尝试过
function readfile() {
alert('readfile work')
$.ajax({
alert('ajax work')
url: "/fileopen",
type: "POST",
##don't know what to do to make fileopen work
}
});
}
routes.rb
match '/fileopen', to:'static_pages#fileopen', via: 'get'
似乎什么都没发生。只有第一个警报有效。
要直接回答您的问题,您必须能够在控制器中处理JS请求。这通常是通过在Rails中使用respond_to
块来完成的,如下所示:
def fileopen
respond_to do |format|
format.js {
my_file = File.new("public/CHNAME1.txt","w")
my_file.write "'tfasf"
my_file.close
}
end
end
这段代码可能会对您当前的代码做出某种响应,但在这种情况下,您可能需要更好地理解Ajax和;轨道工作是为了帮助您更好地
Ajax的工作原理
Ajax是一种javascript技术,它向网站上的其他页面发送"异步"请求。从本质上讲,异步请求完全独立于主HTTP请求,基本上就像一个"伪"浏览器——在后台中工作
Ajax用于从启用JS的端点提取数据(这些端点由Rails中的respond_to
函数处理,然后您可以使用它以某种方式修改页面。很多人对Ajax感到困惑,但它实际上很简单——它只是从另一个页面提取数据的javascript,允许您使用该数据操作页面
在视图中使用Ajax
这对你来说很重要的原因是你提到你不知道如何处理应用程序的success
回调。希望我的解释能告诉你,$.ajax
调用的成功部分应该用于将你从控制器收到的数据附加到你的页面上
这可以通过以下方式完成:
$("#button").click(function() {
$.ajax({
url: "/static_pages/fileopen",
type: "POST",
data: {name: $(this).val()},
success: function (data) {
// append data to your page
$("page_element").html(data);
}
});
});
相关文章:
- Target=带有OnClick JavaScript的空白链接
- onclick javascript in PHP
- 按钮don't使用onClick-Javascript HTML重定向
- Selenium>如何使用Selenium Webdriver调用onClick javascript函数
- Image Map 在 FF 和 IE 中不起作用(使用 onclick javascript)
- .onClick javascript 函数 - 悬停时隐藏
- onClick javascript不起作用
- onClick/Javascript导航不起作用
- 我应该如何在Python中使用这个onclick(javascript)
- 如何在ruby on rails中对onclick javascript调用操作
- 如何使用onclick javascript动态添加,删除列表中的节点
- 使用 onclick- Javascript 通过数组递增
- 滚动到一个元素 onClick JavaScript
- 使用 onclick javascript 更改元素的类
- OnClick Javascript似乎无法正常工作
- OndblClick 不会在带有 OnClick JavaScript 的元素上工作
- onclick="javascript:func()" vs. onclick="func
- onClick javascript 函数不起作用
- AutoIt 单击一个在IE中没有名称或只有ID类的onClick Javascript按钮
- 在表单提交后调用 onclick javascript 事件