回到Rails 2,在link_to_remote中有一个:condition选项,它允许你指定一些必须返回true的javascript或者不会发送远程请求。但是,在rails 3中,似乎已删除了此选项。
我想要做的是有一个ajax表单,但它需要在提交之前在浏览器上进行验证(这是非标准的验证)。基本上我需要能够设置一些条件javascript表达式,以防止在验证失败时提交表单 - 与rails 2中的:condition选项相同。有没有办法在rails 3中再次实现相同的功能?
我正在使用带有mootools版本的rails.js的mootools。我查看了mootools rails.js文件并没有看到任何看起来像我会指定一些条件javascript的东西。我错过了什么吗?
*注意:我只是查看了原型中编写的默认rails.js文件的源代码。在这个文件中有以下几行:
var event = element.fire("ajax:before");
if (event.stopped) return false;
在原型版本中,您可以通过监听“ajax:before”事件并在侦听器中停止事件来停止发送请求。但是,我在mootools rails.js代码中找不到这样的东西,所以也许这是mootools rails.js文件中的一个错误?
答案 0 :(得分:0)
link_to_remote
已从Rails 3中删除。现在是link_to :remote => true
。如果你想做一些js验证,你可以使用这样的东西:
<%= link_to "test", '/test', :id => "test-link", :remote => true %>
并在application.js中添加您的验证(在我的示例中它是Prototype。我猜测使用Mootools并不是问题):
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