0

谁能告诉我他们是否能够让 client_side_validation gem 在显示模式(Zurb Foundation)中工作。

我有一个可以很好地与 client_side_validation 配合使用的表单,但是一旦我将其置于显示模式中,验证就不再起作用。

( http://foundation.zurb.com/docs/reveal.php中的 https://github.com/bcardarella/client_side_validations )

谢谢

4

1 回答 1

2

已编辑-此页面将来可能会给其他人一些见解(自从我发布第一个答案以来,我没有重新访问过此页面,因此我没有对其进行测试)-默认情况下,客户端验证仅验证可见字段,因此如上所说页面,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">&#215;</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">&#215;</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 - 以及你适当的控制器操作)。

快乐的编码;-)

于 2012-11-20T16:16:12.777 回答