2016-09-21 31 views
0

(jQuery的/ JavaScript的新手在這裏)jQuery的show方法在Rails應用程序

在我的Rails應用程序不能正常工作,我想看看是否在下拉菜單中選擇的選項文本「新建類別」相匹配,如果所以,然後我想要一段html顯示一個新的行,用戶可以指定一個新的類別名稱。

在我class.coffee文件我有這樣的:

$(document).on "turbolinks:load", -> 
    if($('#category-select option.selected').text() == "New Category") 
    $('#new-categrory').show() 

在我class.html.erb文件我有這樣的:

<div class="col-xs-6 center block"> 
      <%= f.label :category, "Category" %> 
      <%= f.select :category, options_for_select(getAllCategories), {}, {:required => true, :class => 'form-control', id: "category-select"} %> 
      <%= f.text_field :category, :class => 'form-control', id: "new-category" %> 
</div> 

(我的getAllCategories函數只是返回數組選項,但這並不重要)

最後,我在我的課堂上有一個班級規則:

#new-category{ 
display: none; 
} 

所以我很堅持。我試過使用多個stackoverflow問題的語法,沒有任何工作。

我已經能夠運行一個簡單的警報彈出選擇下拉列表,所以我知道jQuery正在運行。

任何幫助,將不勝感激。

回答

0

我想通了,如何做到這一點。

我跑一次的「#選擇類別」 ID得到了改變,所以

$(document).on "turbolinks:load", -> 
    $('#category-select').change -> 
     selected = $('#category-select').val() 
     if selected is "New Category" 
      $('#new-category').show() 
     else 
      $('#new-category').hide() 

這終於做的伎倆。希望能幫助其他人解決這個問題。

0

你在你的CoffeeScript文件縮進可能是問題,請嘗試縮進第二行一個級別,例如:

$(document).on "turbolinks:load", -> 
    if($('#category-select option.selected').text() == "New Category") 
    $('#new-categrory').show() 

Here is a link showing the issue with what you have now ---- NOTE: had use a weird link shortener because the coffeescript compiler was generating url that didn't mesh nicely with markdown.

+0

它在我的代碼中縮進,它只是在我複製它時沒有正確顯示 – Avir94

相關問題