问题标签 [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.
ruby-on-rails-3 - 用JS改变
问题是我有一个远程表单,根据条件,id 喜欢转换为非远程表单(使用 UJS),然后提交。注意表单有文件上传。
这是详细信息:我最初使用
生成 HTML:
当我按预期单击提交时,表单提交为“AS JS”。在控制器操作中,我正在对提交的表单中的字段进行一些验证。如果所有验证都通过,我执行以下 .js.haml 模板:
它成功地将页面上的 HTML(通过 Firebug 见证)更改为:
由于表单包含一个 f.file_field,我必须作为多部分提交,以便可以上传图像,并且我现在无法提交“AS JS”,当我点击提交时,确实调用了控制器操作“regularAction”,但它仍然'作为 JS'
问题是,我还需要在 HTML 中进行哪些更改,以便可以非 xhr 提交表单?它与标题有关吗?
ruby-on-rails - 用javascript改变数据方法不会改变ajax调用用户的方法吗?
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我与data-remote="true"
and有一个链接data-method="delete"
。当我单击链接时,我可以看到DELETE
对我的 rails 服务器的请求。然后返回的 JS 代码改变了这个链接的属性,其中包括href
和data-method
。
再次单击此链接后,我的服务器正在接收对 new 的请求href
,但使用 old data-method
,即使我已将其更改DELETE
为POST
(它仍然发送DELETE
请求)。
但是,如果我刷新页面,HTML 与“新”HTML 相同(用我返回的 JS 更改),但它实际上发送了正确的请求类型。这就是为什么这个问题让我感到困惑。
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 进行了更改。
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 拖放上传的人。
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'
明确地放在路线文件上,但这也没有用。我非常感谢你在这个问题上的任何帮助。
jquery - 尝试从 Rails 中的 URL 参数显示 DIV
在 Rails 3 中,我有一个要访问的 URL (http://localhost.com/display_div_a_and_hide_div_b),我希望它隐藏和显示相应的 div。
我的路线文件中有以下内容:
但是我不知道在特定的控制器操作中添加什么来显示和隐藏这些 div。我使用的是 UJS 而不是原型,所以无法使用 render :update 方法。
非常感谢任何帮助。
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 文件中的代码:
jquery - Rails3 中的 Ajax 请求,无法正常工作
我尝试使用 AJAX 重构我的项目。我有一个链接...
... 一个 xxx 控制器动作 ...
...和一个 show_recent_chart.js.erb 模板
单击链接后,我的日志文件说:
所以看起来一切正常。但是 js.erb 模板中的 javascript 代码永远不会被执行。Firebug 只显示请求,但没有其他内容。
我怎样才能让它工作?谢谢!
ruby-on-rails - Rails 3 UJS 意外行为
我有这样一个表格:
我在 my.js 中也有这样的代码行:
当我点击删除时,我只收到一条消息succ但我正在等待一条消息加载,然后是一条消息succ。
为什么我在成功之前没有收到消息加载?
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 中将其替换为:
但是当我单击该链接时,我在控制台中没有收到任何错误,并且消息也没有被删除。