我正在使用chosen.js(http://harvesthq.github.com/chosen/)。我想知道是否有人能够一起使用选择的选择框和client_side_validations。有没有人使用chosen.js下拉列表中的client_side_validations gem?
问题是,当我们使用选择它隐藏原来的选择元素,并呈现自己的下拉,而当我们专注了验证不被调用,并且当验证消息显示时,它显示与原始选择元素,所以错误的定位也是正确的。
什么能来处理这一个很好的方式,我是我们可以改变一些代码里面ActionView::Base.field_error_proc
目前看起来像
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
unless html_tag =~ /^<label/
%{<div class="field_with_errors">#{html_tag}<label for="#{instance.send(:tag_id)}" class="message">#{instance.error_message.first}</label></div>}.html_safe
else
%{<div class="field_with_errors">#{html_tag}</div>}.html_safe
end
end
任何想法?
编辑1:
我有以下的解决方案,现在是为我工作。
- 应用类“chzn-下拉”我所有的选择,正在通过选择
- 使用client_side_validations提供了以下回调宝石
clientSideValidations.callbacks.element.fail = function(element, message, callback) {
if (element.data('valid') !== false) {
if(element.hasClass('dropdown')){
chzn_element = $('#'+element.attr('id')+'_chzn');
console.log(chzn_element);
chzn_element.append("<label class='message-chzn'>"+message+"</label>");
}
else{
callback();
}
}
}
你在哪里添加回调到你的应用程序? –