首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3远程链接:条件和mootools

Rails 3远程链接:条件和mootools
EN

Stack Overflow用户
提问于 2011-04-12 05:27:47
回答 1查看 363关注 0票数 0

回到Rails2,在link_to_remote中有一个:condition选项,它允许您指定一些必须返回true的javascript,否则远程请求将不会被发送。然而,在Rails3中,这个选项似乎已经被删除了。

我想做的是创建一个ajax表单,但是在提交之前需要在浏览器上进行验证(这是非常不标准的验证)。本质上,我需要能够设置一些条件javascript表达式,以防止在验证失败时提交表单-与Rails2中的:condition选项相同。有没有办法在Rails3中再次实现相同的功能?

我在rails.js的mootools版本中使用mootools。我看了看mootools的rails.js文件,没有看到任何可以让我指定条件javascript的东西。我是不是遗漏了什么?

*注意:我刚刚查看了用prototype编写的默认rails.js文件的源代码。在这个文件中有以下几行:

代码语言:javascript
复制
var event = element.fire("ajax:before");
if (event.stopped) return false;

这看起来像是在原型版本中,您可以通过侦听“ajax: the”事件并在侦听器中停止该事件来停止发送请求。但是,我在mootools的rails.js代码中找不到这样的东西,所以这可能是mootools rails.js文件中的一个bug?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-12 06:36:20

link_to_remote已经从Rails 3中删除了,现在是一个link_to :remote => true了。如果你想做一些js验证,你可以使用如下代码:

代码语言:javascript
复制
<%= link_to "test", '/test', :id => "test-link", :remote => true  %>

并在application.js中添加您的验证(在我的示例中,它是原型。我想用Mootools也不成问题):

代码语言:javascript
复制
document.observe("dom:loaded", function() {
  $('test-link').observe('click', function(event){
    if your_validation_magic
      event.stop();
  });
});

更新:Mootools也有这个事件:https://github.com/kevinvaldek/mootools-ujs/blob/master/Source/rails.js#L131

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5627778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档