问题标签 [ujs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3733 浏览

ruby-on-rails-3 - 用JS改变
在 Rails 3 中从远程到非远程,HAML

问题是我有一个远程表单,根据条件,id 喜欢转换为非远程表单(使用 UJS),然后提交。注意表单有文件上传。

这是详细信息:我最初使用

生成 HTML:

当我按预期单击提交时,表单提交为“AS JS”。在控制器操作中,我正在对提交的表单中的字段进行一些验证。如果所有验证都通过,我执行以下 .js.haml 模板:

它成功地将页面上的 HTML(通过 Firebug 见证)更改为:

由于表单包含一个 f.file_field,我必须作为多部分提交,以便可以上传图像,并且我现在无法提交“AS JS”,当我点击提交时,确实调用了控制器操作“regularAction”,但它仍然'作为 JS'

问题是,我还需要在 HTML 中进行哪些更改,以便可以非 xhr 提交表单?它与标题有关吗?

0 投票
1 回答
1526 浏览

ruby-on-rails - 用javascript改变数据方法不会改变ajax调用用户的方法吗?

我遇到了一个非常奇怪的问题,我很难解决。在我看来,我与data-remote="true"and有一个链接data-method="delete"。当我单击链接时,我可以看到DELETE对我的 rails 服务器的请求。然后返回的 JS 代码改变了这个链接的属性,其中包括hrefdata-method

再次单击此链接后,我的服务器正在接收对 new 的请求href,但使用 old data-method,即使我已将其更改DELETEPOST(它仍然发送DELETE请求)。

但是,如果我刷新页面,HTML 与“新”HTML 相同(用我返回的 JS 更改),但它实际上发送了正确的请求类型。这就是为什么这个问题让我感到困惑。

0 投票
1 回答
674 浏览

jquery - $.validator.unobtrusive.parse-rails 中的 jquery

我发现这个问题和答案是关于 $.validator.unobtrusive.parse

当我使用远程调用或 jQuery 远程加载部分/内容时,jquery ujs 不起作用

看起来这是我需要做的,以使 jquery 在已使用 ajax 加载的页面的某些部分上工作。

但我想知道它在做什么!它是调用rails ujs,还是直接与jquery交谈?我搜索了 rails ujs git hub 站点和 jquery 文档,但在这两个地方都看不到任何东西。有任何文件吗?

谢谢你的帮助。


也许这更清楚:

当我使用 create.js.erb 或 update.js.erb 添加或更改页面的一部分时,如何让 jquery 在页面的这些部分上工作。我正在尝试使元素再次可排序,这个问题是关于最佳就地编辑的,还有其他几个问题,上面的链接似乎是唯一的答案,我无法做到这一点。

那么,如何让 jquery “查看”页面的某些部分,而这些部分已经使用 rails ujs 进行了更改。

0 投票
0 回答
680 浏览

ruby-on-rails - UJS 不适用于 Rails 3 中的 XMLHttpRequest 上传

我在 Rails 中有一个应用程序,用户可以在其中发布新帖子。在表单中,我正在传递,:remote => true所以当记录插入数据库时​​,帖子会使用 javascript 附加到视图中。到目前为止,这一切正常。

最近我读到这篇关于如何使用 HTML5 ( formData )拖放和自动上传的文章。

我以这样的方式实现了这一点:

  • 拖放,工作
  • 发送附件并将其交给 Carrierwave,有效
  • 创建带有附件的新帖子,工作

只有像以前一样,当创建帖子时,Rails 会渲染create.js.erb并预先添加新创建的帖子,这不再起作用。帖子是在数据库中创建的,如果我点击重新加载,帖子会正常显示。create.js.erb但是未执行前面的 javascript 操作。

application.js

posts_controller.rb

create.js.erb

终端显示它作为JS处理的请求:

Processing by PostsController#create as JS

并且我的部分和 ujs 文件也被渲染:

Rendered posts/_post.html.erb (6.4ms)

Rendered posts/create.js.erb (7.9ms)


编辑

好吧,我发现了我的问题,这是我没有在这里讨论的问题。我还使用Pusher将帖子发布给所有正在收听的客户。不知何故,Pusher gem阻止了 UJS 在浏览器中呈现。

所以上面的代码确实适用于 Rails 3。我希望我可以帮助想要尝试 HTML5 拖放上传的人。

0 投票
1 回答
387 浏览

ruby-on-rails - Rails 3:由索引操作而不是创建处理的远程(UJS)表单

我在 Rails (3.1.3) 上使用 Ruby (1.9.3-p0) 制作应用程序,但我在使用用于创建对象的远程表单时遇到问题。表单通过远程链接加载到视图中,该远程链接将其放入 div 中(在new操作中。表单也标记为远程,但是当我提交它时,POST 请求尝试由index操作而不是create操作处理。为什么会发生这种情况?Rails 不应该自动使用create控制器的动作来处理基本路由上的 POST 请求吗?以下是相关代码和消息:

这是加载表单的视图中的远程链接:

这是处理所有这些请求的控制器:

那么,各自的观点是:

新的.js.erb:

创建.js.erb:

在我的 routes.rb 文件中,我只为 Rails 设置了该控制器的默认资源,如下所示:resources :higher_education_studies, :except => [:index]

rake routes命令确认路由 POST '/higher_education_studies' 链接到create操作:

所以我不明白为什么当我提交表单时,我在服务器控制台中得到了这个:

我尝试将这条线post '/higher_education_studies', :to => 'higher_education_studies#create'明确地放在路线文件上,但这也没有用。我非常感谢你在这个问题上的任何帮助。

0 投票
1 回答
285 浏览

jquery - 尝试从 Rails 中的 URL 参数显示 DIV

在 Rails 3 中,我有一个要访问的 URL (http://localhost.com/display_div_a_and_hide_div_b),我希望它隐藏和显示相应的 div。

我的路线文件中有以下内容:

但是我不知道在特定的控制器操作中添加什么来显示和隐藏这些 div。我使用的是 UJS 而不是原型,所以无法使用 render :update 方法。

非常感谢任何帮助。

0 投票
2 回答
2137 浏览

jquery - Rails UJS(jQuery)没有连接数据远程链接

导轨版本:3.2.1

红宝石版本:1.9.3p125

浏览器:Chrome 18.0.1025.162

开发操作系统:Mac OS/X Lion

服务器操作系统:CentOS 5

我正在尝试在我的 link_to 调用中使用 :remote,以便我可以使用 AJAX 请求 HTML 内容,并使用返回的内容填充页面的一部分。

Rails 似乎没有正确连接链路。浏览器只是将链接视为常规链接标记,并且似乎没有处理任何 Rails UJS 单击事件处理程序。

我有一个与它相关联的数据确认的链接,它正在工作,所以这表明 UJS 正在做至少一些必要的接线。

我将其他单击事件侦听器附加到同一链接以隐藏/显示将显示从 AJAX 调用返回的 HTML 的页面部分。

抱歉,如果这是在其他地方发布的,但我已经搜索了几天,还没有找到解决这个特定问题的解决方案。我看过一些相关的文章,但他们都假设正在进行 AJAX 调用,并且存在一些 Rails 渲染流或路由问题,在我的情况下,似乎根本没有任何连线。

这是一些代码:

我在视图中的链接:

RoR 生成的输出:

这是 /task/:task_id/notes 控制器代码:

最后,我在 index.js.erb 文件中的代码:

0 投票
1 回答
133 浏览

jquery - Rails3 中的 Ajax 请求,无法正常工作

我尝试使用 AJAX 重构我的项目。我有一个链接...

... 一个 xxx 控制器动作 ...

...和一个 show_recent_chart.js.erb 模板

单击链接后,我的日志文件说:

所以看起来一切正常。但是 js.erb 模板中的 javascript 代码永远不会被执行。Firebug 只显示请求,但没有其他内容。

我怎样才能让它工作?谢谢!

0 投票
1 回答
94 浏览

ruby-on-rails - Rails 3 UJS 意外行为

我有这样一个表格:

我在 my.js 中也有这样的代码行:

当我点击删除时,我只收到一条消息succ但我正在等待一条消息加载,然后是一条消息succ

为什么我在成功之前没有收到消息加载?

0 投票
1 回答
147 浏览

jquery - Railcasts 103 - 从原型到 Jquery 的转换,需要帮助

说到这个,我是个笨蛋,我完全被困住了。在railscast 103之后,我正在尝试使用 rails 3.2.3 实现公告系统

本教程使用原型,我不知道如何将其转换为 jquery。

在我的application.html.haml我有这个:

单击隐藏按钮应该删除视图,同时还将 设置announcement_hide_time为当前时间。我的 javascript 控制器中有这个:

这在我的路线中:

现在的问题是,在 railscast 中,它说我需要 hide_announcement.js.rjs 中的以下内容

我在 hide_announcement.js.erb 中将其替换为:

但是当我单击该链接时,我在控制台中没有收到任何错误,并且消息也没有被删除。