我正在使用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)错误消息。
有什么想法解决这个问题吗?
答案 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