谁能告诉我他们是否能够让 client_side_validation gem 在显示模式(Zurb Foundation)中工作。
我有一个可以很好地与 client_side_validation 配合使用的表单,但是一旦我将其置于显示模式中,验证就不再起作用。
( http://foundation.zurb.com/docs/reveal.php中的 https://github.com/bcardarella/client_side_validations )
谢谢
谁能告诉我他们是否能够让 client_side_validation gem 在显示模式(Zurb Foundation)中工作。
我有一个可以很好地与 client_side_validation 配合使用的表单,但是一旦我将其置于显示模式中,验证就不再起作用。
( http://foundation.zurb.com/docs/reveal.php中的 https://github.com/bcardarella/client_side_validations )
谢谢
已编辑-此页面将来可能会给其他人一些见解(自从我发布第一个答案以来,我没有重新访问过此页面,因此我没有对其进行测试)-默认情况下,客户端验证仅验证可见字段,因此如上所说页面,https://github.com/bcardarella/client_side_validations/wiki/Validation-in-Multi-Step-Form,您可能必须告诉它使用$(form_id).enableClientSideValidations();
不过我没有这样做,我通过ajax加载了整个东西。这里有一些信息可以帮助处于这种情况的其他人继续前进。
Zurb 的 Foundation 框架的标准模态窗口只是你页面上的一个 div 和一个触发 js 在 display:none/block 之间切换的链接。我不知道为什么这会阻止 client_side_validations gem 像显示模式中的其他 js 一样正常工作。我捎带了显示模式及其 js 的样式,我只是通过 ajax 加载整个内容。
以防万一这对将来的某人有所帮助,这就是我现在的基本设置。我有多个链接到我的 ajax 和一个将成为模态的 div。我快速检查了我的 js.erb 并换掉了任何以前呈现的内容(对于多个链接..)
#Populate div with a reveal modal containing a partial (a form, remember to put in the j in "j render") and if said modal already has content, ditch it.
if( !$('#reveal-div').html().length ) {
$('#reveal-div').append('<%= j render :partial => 'form', :locals => { :some_locals => @whatever_values } %><a class="close-reveal-modal">×</a> ');
$('#reveal-div').addClass('reveal-modal').appendTo('body');
$('#reveal-div').reveal();
}
else{
$('#cbrform').remove();
$('#reveal-div').append('<%= j render :partial => 'form', :locals => { :some_locals => @whatever_values } %><a class="close-reveal-modal">×</a>');
$('#reveal-div').reveal()};
#Make sure you get your validations working on remote loaded forms with this line
$('form[data-validate]').validate();
因此,通过在我的表单的模态 div 上调用 .reveal() 然后调用 .validate() 我可以通过 ajax 加载我的模态,并且可以以通常的方式将其关闭。我不是在初始页面加载时加载我的表单,然后用 js 显示它,而是用 js 将它全部加载,这让我按照通常的步骤来运行我的验证。那是我的 new.js.erb 那里,你应该能够管理它(即,你需要你的 link_to,一个 div 来加载它 - 在这种情况下是#reveal-div - 以及你适当的控制器操作)。
快乐的编码;-)