我有一个使用jquery ui选项卡创建的选项卡式面板,其中每个选项卡都加载了ajax。在每个选项卡上,我都有许多嵌套表单。我使用formtastic来创建表单,使用semantic_form_for来创建嵌套表单。
我安装了client_side验证gem并处理我的'普通'表单。在选项卡式面板中的表单上,它什么都不做。我猜这可能是因为当选项卡内容加载了ajax时,client_side_validation函数需要绑定到输入。有人有这方面的经验吗?甚至关于从哪里开始调试问题的建议也会非常感激......
提前致谢
答案 0 :(得分:2)
尝试将此添加到具有验证问题的标签
<%= 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 %>
答案 1 :(得分:0)
我本能地不喜欢第一个答案中建议的重新加载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文件中的一种方法,它将客户端验证优度绑定到表单。这对我现在有用 - 希望它也可以帮助别人。