Jquery选项卡和客户端验证gem



我有一个使用jquery ui选项卡创建的选项卡面板,其中每个选项卡都加载了ajax。在每个选项卡上,我都有一些嵌套的表单。我使用formtastic创建表单,使用semantic_form_for创建嵌套表单。

我已经安装了client_side验证gem并在我的"正常"表单上工作。在选项卡面板中的表单上,它不执行任何操作。我猜测这可能是因为当用ajax加载选项卡内容时,需要将client_side_validation函数绑定到输入。有人有过这样的经历吗?如果您能告诉我从哪里开始调试这个问题,我将不胜感激。

Thanks in advance

尝试将此添加到有验证问题的选项卡

<%= javascript_include_tag "rails.validations" %>  
<%= form_for @yourform, :validate => true do |f|%>
#Your code here
<% end %>
编辑:

<%= javascript_include_tag 'jquery-1.6.2.min' %>
<%= javascript_include_tag 'jquery-ui-1.8.14.custom.min' %>
<%= javascript_include_tag 'jquery_ujs', 'application' %>
<%= javascript_include_tag "rails.validations" %>  
<%= form_for @company, :validate => true do |f|%>
  <div class="field">
    <b>Company Name:<b><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :address %><br />
    <%= f.text_field :address %>
  </div>
  <div class="field">
    <%= f.label :telephone %><br />
    <%= f.text_field :telephone %>
  </div>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

我本能地不喜欢像第一个答案中建议的那样重新加载js文件的想法,尽管这个答案有助于我指出正确的方向。果然,再过一段时间,重新导入的文件开始引起它们自己的问题,所以我做了更多的挖掘。为了设置选项卡,我现在使用这样的js:

    contacttabs.tabs({
            load: function(event, ui){
                   $('a.load_to_enquiries_tab').live("click", function() {
                        $('#enquiries').load(this.href, function() {
                              set_styles();
                              $(function() {
                                    $('form[data-validate]').validate();
                              })
                              return false;
                        });
                        return false;
                  });
});

关键行是回调中对选项卡中的表单调用validate()的行。这是client_side_validation validations.js文件中的一个方法,它将客户端验证属性绑定到表单上。

相关内容

  • 没有找到相关文章

最新更新