2012-12-19 2 views
0

레일즈 컨트롤러에 AJAX create 액션을 사용하여 폼을 선택하고 폼의 렌더 부분을 수행하여 다시 만듭니다. 이렇게하면 유효성 검사가 실패하면 오류 메시지가 표시됩니다.레일즈 jQuery Tokeninput AJAX를 통해 다시로드

그러나 내 텍스트 필드 중 하나는 jQuery TokenInput 플러그인을 사용하고 ajax 호출이 양식을 다시 그릴 때 jQuery TokenInput 플러그인은 더 이상 양식에로드되지 않습니다.

AJAX 컨트롤러 작업 자바 스크립트 파일에서 해당 assets/javascripts/.js.coffee 파일을 다시 실행하는 방법이 있습니까? 사전에

감사합니다 ... 폼이 다시 그려 후

답변

1

, 당신은 당신의 Tokeninput 스크립트를 다시 실행해야합니다. 이 작업을 수행하는 가장 좋은 방법은 Tokeninput 명령을 함수에 배치 한 다음 (직접 반복하지 않으므로) 폼을 렌더링 한 후에 해당 함수를 호출하는 것입니다.

dogs.js.coffee :

tokenizeDogCollars = -> 
    $("#dog_collar_tokens").tokenInput "/dogs.json" 
tokenizeDogCollars 

create.js.erb :

<% if @dog.errors.any? -%> 
    ... 
    $('#dog-form-container').empty(); 
    $('#dog-form-container').append('<%= j render("form") %>'); 
    tokenizeDogCollars(); 
    ... 
<% else %> 
    ... whatever you want to do on a successful save ... 
<% end %> 
예를 들어, 당신이 토큰 화 원하는 칼라를 has_many 개 모델을 원하는 가정 해 봅시다
관련 문제