回到Rails2,在link_to_remote中有一个:condition选项,它允许您指定一些必须返回true的javascript,否则远程请求将不会被发送。然而,在Rails3中,这个选项似乎已经被删除了。
我想做的是创建一个ajax表单,但是在提交之前需要在浏览器上进行验证(这是非常不标准的验证)。本质上,我需要能够设置一些条件javascript表达式,以防止在验证失败时提交表单-与Rails2中的:condition选项相同。有没有办法在Rails3中再次实现相同的功能?
我在rails.js的mootools版本中使用mootools。我看了看mootools的rails.js文件,没有看到任何可以让我指定条件javascript的东西。我是不是遗漏了什么?
*注意:我刚刚查看了用prototype编写的默认rails.js文件的源代码。在这个文件中有以下几行:
var event = element.fire("ajax:before");
if (event.stopped) return false;这看起来像是在原型版本中,您可以通过侦听“ajax: the”事件并在侦听器中停止该事件来停止发送请求。但是,我在mootools的rails.js代码中找不到这样的东西,所以这可能是mootools rails.js文件中的一个bug?
发布于 2011-04-12 06:36:20
link_to_remote已经从Rails 3中删除了,现在是一个link_to :remote => true了。如果你想做一些js验证,你可以使用如下代码:
<%= link_to "test", '/test', :id => "test-link", :remote => true %>并在application.js中添加您的验证(在我的示例中,它是原型。我想用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
https://stackoverflow.com/questions/5627778
复制相似问题