2

我正在使用 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) 错误消息。

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

4

2 回答 2

0

我有同样的问题。我尝试了在评论中发送给您的解决方案,但结果证明我必须这样做:

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

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

尝试:

 form.find(':input[data-validate]').each(function() {
于 2013-01-23T14:31:09.670 回答
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

于 2013-03-27T08:31:18.683 回答