2

https://github.com/ivaynberg/select2/tags레일 v3은 내가 레일 3.0.9, client_side_validation 보석 등을 사용하고

에서, 자신의 JS 및 CSS 파일을 수동으로

다운로드 한 파일을 사용하여 선택 2 보석을 사용하려

예상대로 변경 존재 확인

<%= 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와 간단한 형태로,

,536,

그러나 커서를 아무 값도 선택하지 않고 초점을 맞출 때 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

자바 스크립트의 현재 설정 개체에 유효성 검사를 추가하십시오. 예

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

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가 display : none으로 실제 select 태그를 숨겨서 숨겨져있는 select 태그에 문제가있는 경우 form.find (': input : enabled : visible [data-validate], select : hidden [data-validate] ') 또는 별도의 js 파일에서 유효성 검사를 수동으로 수행 할 수 있습니다. – blushrt