rails v3 with select2 gem忽略client_side_validation错误消息

时间:2013-01-19 15:44:28

标签: jquery ruby-on-rails-3 client-side-validation jquery-select2

我正在使用rails 3.0.9,client_side_validation gem,并尝试通过手动使用他们的js和css文件来使用select2 gem

https://github.com/ivaynberg/select2/tags

下载文件

带有状态验证的简单表单

    <%= javascript "validations/rails.live.validations", "select2.min"%>
    <%= stylesheet "select2"%>
    <script type="text/javascript" charset="UTF-8">
        $(document).ready(function() {
            $("#user_tag_ids").select2();
             });
    </script>
    <%= form_for @user, :validate => true do |f| %>
        <%= f.label :tag_ids %><%= mark_required(@user, :tag_ids) %>
        <%= f.collection_select(:tag_ids, @hobbies, :id, :display_name, {:prompt => "please select"}, :multiple => true) %>
        <%= f.submit %>
    <% end %>

现在,选择框 UI 按预期更改

但是当光标聚焦而没有选择任何值时,则client_side_validation gem应显示错误消息但不显示消息(甚至不将error_field类设置为该字段)。

select2 gem是否忽略/滑动以呈现错误消息?

如果我点击提交按钮,那么我只会收到(client_side_validation gem)错误消息。

有什么想法解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我尝试了我在评论中发送给你的解决方案,但事实证明我必须这样做:

在rails.validations.js文件中,而不是

 form.find(':input:enabled:visible[data-validate]').each(function() {

尝试:

 form.find(':input[data-validate]').each(function() {

答案 1 :(得分:0)

在javascript中向当前设置对象添加验证。实施例

var validators = window[$('#place_order_form').attr('id')].validators

var input_name = $("#user_tag_ids").attr('name');
validators[input_name] = {"presence":{"message":"Must be filled"}}

参考:https://github.com/bcardarella/client_side_validations/issues/149