2011-10-07 34 views
3

我正在rails上開發一個項目,並在下拉菜單中獲取所選項目時出現問題。它在視圖/應用程序上工作正常,但是當我嘗試使用相同的代碼在jQuery模型對話框中獲取所選項目時,它不適用於我。有人可以解釋這個問題嗎?我不能在模型對話框上使用observe_field?爲什麼在JQuery模型對話框中使用observe_field代碼不起作用?

這是我的代碼:

 <%= label_tag :Search_by %> 
     <select name="search" id="search" > 
      <option value="0">Name</option> 
      <option value="1">Trainer</option> 
      <option value="2">Venue</option> 
      <option value="3">Date</option> 
     </select> 

     <div id="div_to_be_updated" style="float:right"> 
      <%= render 'layouts/new_search' %> 
     </div> 

      <%= observe_field 'search', :update => 'div_to_be_updated', 
      :url => {:controller => 'events', :action=> 'find' }, 
      :with => "'is_delivery_address=' + escape(value)" %>     
     </div> 

這是我的「發現」的方法在「事件」控制器:

enter code here 
def find 
@trainers= Trainer.all 
@countries= Country.all 

     if ["0"].include?(params[:is_delivery_address]) 
      render :partial => 'layouts/new_search' 
     else if ["2"].include?(params[:is_delivery_address]) 
      render :partial => 'layouts/venu_search' 
     else if ["1"].include?(params[:is_delivery_address]) 
      render :partial => 'layouts/trainer_search' 
     else 
      # check element is date range... 
      render :partial => 'layouts/date_search' 

     end 
     end 
    end 
end 

我不明白這個問題的原因。它在application.html.erb文件中工作,但它不適用於jQuery模型對話框。

+0

你的問題有點不清楚。然而,聽起來你可能正在尋找jQuery的live()函數。它允許你觀察動態生成的DOM對象(如對話框)。 – bricker

+0

我只需要知道如何使用觀察Jquery模型對話框上的下拉菜單。我爲觀察區域添加了工作代碼,但它不適用於「模型」對話框。所以我需要知道如何做到這一點? –

+0

我也有同樣的問題仍然在這:( – Coder

回答

3

我看到here RoR使用Prototype在窗體中創建'observable'元素。如果這發生在你創建jQuery 模態對話框(我想你再次使用jQuery UI對話框)之前,它可能會「觀察」錯誤或不存在的元素。

嘗試在RoR PrototypeHelpers運行之前在observable ergo之前創建對話框。

相關問題