2

我使用的鐵軌3.0.9,client_side_validation寶石,只是試圖通過thier js和css文件中手動導軌和選擇2寶石忽略client_side_validation錯誤信息V3

下載的文件使用選擇2寶石從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

你的問題可能這個答案在這裏有關[http://stackoverflow.com/questions/14186916/override-client-side-validations-behavior-to-validate-隱藏字段] [1] [1]:http://stackoverflow.com/questions/14186916/override-client-side-validations-behavior-to-validate-hidden-fields – blushrt

回答

0

我有同樣的問題。我想我給你的意見的解決方案,但事實證明我不得不這樣做:

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

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

嘗試:

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

這是一個儘管如此。 – blushrt

+0

是的,但它也可能會影響我的其他形式,我認爲不需要在js文件中檢查字段的存在大變化 – nishanthan

+0

輸入選擇器採用所有表單元素。如果你只在選擇標籤時遇到問題,因爲select2隱藏了真實的選擇標籤,並且顯示:none,你可以嘗試使用form.find(':input:enabled:visible [data-validate],選擇:隱藏[數據驗證]'),或者您可以手動在單獨的js文件中進行驗證。 – blushrt