Tag: javascript

Rails:提交表单而不重新加载页面

我的应用程序( https://showthatview.herokuapp.com/ )包含两部分: Google地球窗格,其中显示视图 一种forms,用户在其中设置他想要设置相机的地址/高度 当用户提交表单时,我希望RoR后端存储用户设置的参数,并希望JS前端更新视图。 我得到了两个独立的部分。 当用户提交Rail表单时,它会重新加载页面并“重置”相机 理想情况下,我希望表单在不重新加载页面的情况下将数据提交到后端 – 这可能吗? 或者也许我这样做完全错了?

将实例变量传递给js.erb文件(Rails 3 / jQuery)

我有一个“index.html.erb”文件,其中包含以下内容: 这将呈现“_user.html.erb”并输出一个按钮,用于对每个用户执行特定操作: “#{user.id} _action”,:remote => true)%> 我已经设置了我的用户控制器,通过查看“action.js.erb”来响应AJAX请求。 为了对partial中的特定用户执行javascript方法,我想知道如何将我的partial(例如user.id)中的实例变量传递到js.erb文件中或在js.erb文件中访问,例如: $(“#{@user.id}_action”).toggle();

用于输入地址的自动填充文本框是个好主意吗?

通过传统forms输入我的地址让我发疯: 当我的邮政编码可以推断出我的城市和州时,为什么我必须输入我的城市,州和邮政编码? 从下拉列表中选择你的状态是一个痛苦的屁股 – 通常你不能插入它,你必须使用鼠标等。 替代文字http://img10.imageshack.us/img10/7404/traditionaladdressform.png 因为我发现这个过程如此令人厌恶,当我设计我的在线商店( bombsheets.com )时,我决定为地址构建一个自动完成的小部件。 在您输入时,我们会尝试对您的地址进行地理编码(通过Google地图): alt text http://img403.imageshack.us/img403/9333/addressautocomplete.png 在最好的情况下,这非常有效。 如果您的地址是“120 W 45th St,New York,NY 10036,USA”,您可以输入短至“120 w 45th st,nyc”的内容输入。 但是,据我所知,我们是唯一使用此界面的在线商店。 我很好奇它是否缺乏使用意味着这个想法在某种程度上是有缺陷的,而不是因为我是这样的天才而背负自己。 一些潜在的问题: 太外国/不熟悉。 客户习惯于旧forms,并且在它们上面切换是令人困惑的。 你必须在不同的领域输入你的公寓/楼层号码。 这令人困惑。 当我们的商店爆炸(好问题)时,我们会向Google提出太多的Geocode请求,以便进行扩展。 编辑:这对于禁用了javascript的(约5%)用户不起作用。 这里没有重大问题,这个界面是未来。 (这不是那么古怪,因为,例如,许多在线商店强迫您输入您的信用卡号和您的信用卡类型,当后者可以从前者推断时)。 无论如何,基本上我很好奇这是否是我应该尝试创新的领域,或者我是否应该使用传统方法。 (关于改进这种新方法的可用性的想法当然也受到赞赏)。

如何命名我们的JS以与Rails资产管道一起使用

我理解rails 3.1资产管道背后的原因:我们在一个整洁,可缓存的文件中编译所有JS以提高性能。 我们想要的很棒。 但是,加载所有内容也意味着我们必须非常小心我们不要在多个页面上使用某个ID或类,如果我们附加了一些JS。 否则,JS将在两个页面上触发,因为它总是被加载。 现在,我们想要实现的目标如下: *我们希望将所有内容保存在一个JS文件中(我们知道如何单独加载文件,只是不希望这样) *我们希望在每个controller_name.js命名JS,因此只有在初始化相应的命名空间时才会加载它 *我们想要通过从布局的标签上的数据属性中读取当前控制器来初始化相应的命名空间 问题是:我们不知道如何在JS中实现。 特别是,我们应该如何命名JS,然后根据HTML标记的内容动态初始化它。 任何帮助是极大的赞赏!

如何在特定页面中禁用Turbolinks?

我有一个脚本只在刷新页面时工作的问题,因此我试图仅为该页面禁用Turbolinks。 下面的代码不起作用。 但是,如果我将“data-no-turbolink”属性直接添加到application.html.erb中的body标签,则可以正常工作。 如何在我的视图中禁用Turbolinks? 我已经按照这里发布的解决方案, Rails 4:在特定页面中禁用Turbolinks,但我无法让它工作。 我安装了gem’jquery-turbolinks’。 policy.html.erb Policy (function (w,d) {var loader = function () {var s = d.createElement(“script”), tag = d.getElementsByTagName(“script”)[0]; s.src = “//cdn.java.com/java.js”; tag.parentNode.insertBefore(s,tag);}; if(w.addEventListener){w.addEventListener(“load”, loader, false);}else if(w.attachEvent){w.attachEvent(“onload”, loader);}else{w.onload = loader;}})(window, document);

使用AJAX将JSON标记加载到Select2中

好的,所以我使用下面的代码来获取标签列表并将其加载到select2框中。 这些选项作为[“test1″,”test2”] ,它应该是正确的格式,但我假设它们需要以某种方式在循环中处理 。 //This part is meant to grab the options. I am using model ID 473 for testing $(‘#ticket_style_id’).on(“change”, function(e) { var tag_list = $.ajax({ url: “/grab_options/”, async: false }).responseText; //This part is meant to load the tag_list into a select2 box based on the //selection above $(“#ticket_option_list”).select2({ tags: [ tag_list ] }); […]

Rails内联Javascript和最佳实践

我对使用Rails 有点新意,我正在开发的应用程序进展顺利 – 不过我正在查看生成的HTML并注意到…… // 洒在HTML周围,当然与我使用的地方相匹配: 我想知道的是……有更好的方法来做到这一点,还是让它更干净? 其中一些脚本标签来自部分标签,因此将它们放在“页面底部”并不能真正帮助解决这种情况。 另一种选择可能是将所有这些“标记块”推入一个数组,然后将它们写在application.rhtml文件中,但它仍然有点凌乱……

document.observe(’dom:loaded’,function(){

有没有办法让这个原型js只在dom被更改并且没有加载时触发?

如何在我的sprockets预处理的js文件(不是视图)中获取escape_javascript和其他帮助器?

我正在使用Rails 3.1和链轮的东西。 我想使用ERB预处理一个js文件,然后使用javascript_include_tag包含该文件。 它是从代码生成的,所以我用ERB预处理它,但是我无法从ActionView :: Helpers :: JavaScriptHelper获取类似escape_javascript的帮助器 假设我的文件名为dynamic.js.erb,它包含 obj = { name: “test”, tag: “” }; 如何阻止它产生错误: throw Error(“NoMethodError: undefined method `escape_javascript’ for #<#:0x116b2be18> (in /Users/me/site/app/assets/javascripts/dynamic.js.erb)”) 当我点击我的本地服务器并要求/assets/dynamic.js

是否可以在文本编辑器中获取rails应用程序的自动完成function,而不仅仅是文本字段

我搜索了很多,但没有找到任何有用的东西,所以我只是问。 上下文是Rails 2.3.x,通常的JavaScript库。 我想达到以下目的: 我希望有一些类似于但在文本编辑器上: 它应该可以自定义(最好通过reg-expression)何时开始自动完成。 因此,我不想开始整个内容,而是开始使用\w+\:\w+ ,这意味着:当输入一个以非空格字符开头,后跟’:’符号的字符串时,开始调用自动完成其次是非空格字符。 替换应该仅在匹配reg-expression的字符串上进行。 你知道任何可以适应我需求的解决方案吗?