는 내가 jQuery를 자동 완성 플러그인을 사용하고, 나는이 이벤트를 사용자 정의 할 : 드롭 다운 목록에서 요소를 선택하면application.js 파일에서 jQuery로 컨트롤러 동작을 어떻게 호출합니까?
select: function(event, ui) {
$('.topic_field').val(ui.item.topic.name);
return false;
는 기본적으로는 콜백을 트리거합니다. 지금은 선택된 요소 만 텍스트 필드에 추가합니다. 필드를 모두 채우고 응용 프로그램에서 비디오 업데이트 컨트롤러 동작에 POST 요청을 보내 사용자가 명시 적으로 단추를 누를 필요가 없도록하고 싶습니다. 어떻게해야합니까?
UPDATE :
여기<%= form_for @video, :url => {:action => "update"}, :remote => true do |f| %>
<div class="field">
<%= f.text_field :topic_names, :class => "topic_field" %>
</div>
<%= f.submit "Add Topic" %>
<% end %>
내 jQuery 코드입니다 : 여기
비디오 컨트롤러의 쇼보기에서 폼이다는var url = $('.edit_video').attr('action');
var val = ui.item.topic.name;
$.post(url, {data:val});
이 내 routes.rb에 :
resources :videos
resources :video_votes
resources :users
resources :profiles
resources :genres
resources :topics
resources :topicables
resource :session
def update
@video = current_user.videos.find(params[:id])
respond_to do |format|
if @video.update_attributes(params[:video])
format.html { redirect_to(@video) }
format.js
else
format.html { render :action => "edit" }
end
end
end
그냥'type' 옵션을 통과해야합니까 업데이트 동작에 해당하는 URL로 'url' 옵션을 사용할 수 있습니까? –
업데이트 작업에 해당하는 URL은 무엇입니까? –
'type' 옵션을 POST로 기본 설정하지 않아도되며'url' 옵션은 명시 적으로 필요하지 않습니다. 왜냐하면 첫 번째 인수에서 문자열을 선택하기 때문입니다. –