2016-03-06 139 views
0

我在rails上使用ruby。我有一個使用form_for與textarea創建的窗體。當點擊文本區域時,我希望textarea的高度變大。來自asp.net mvc背景,我會考慮添加一個onClick事件到文本區域,然後使用jquery將高度px添加到文本區域。我正在努力如何使用軌道做到這一點:如何在form_for textarea元素上觸發onClick事件

<%= form_for(@person) do |f| %> 
    <%= f.label :name %> 
    <%= f.text_field :title, class: 'form-control' %> 
    <br/> 
    <div class="text"> 
     <%= f.text_area :notes, placeholder: "add notes here...", id: "tester"%> 
    </div> 
    <%= f.submit "Post", class: "btn btn-primary" %> 
<% end %> 

我已經設法添加一個id'test'到text_area。然後我把這個代碼在的application.js文件:

$(document).ready -> { 
    $('#tester').bind('click', function() { 
     $('#tester').style.height = "200px"; 
    }); 
} 

我從Rails文檔這裏這樣的想法:http://guides.rubyonrails.org/working_with_javascript_in_rails.html 然而,這似乎並沒有在所有觸發點擊事件。這怎麼能在rails中完成?注意:我對咖啡劇本不熟悉,寧願使用香草js。

回答

0

我發現了答案。我的代碼其實只是語法錯誤。下面是JavaScript代碼的正確語法:

$(document).ready(function() { 
    $('#tester').bind('click', function() { 
     $('#tester').attr("rows", "15"); 
    }); 
}); 

我本來對的form_for是正確的

0

你的元素實際上並沒有一個id「tester」。 Rails根據您正在處理的對象爲它創建另一個ID。嘗試將您的javascript中的$('#tester')更改爲$('.text textarea'),我認爲它會起作用。

+0

這沒有奏效。但我也想這只是這個文本框不是所有的文本框,這就是爲什麼我想使用一個ID。我可以不申請和id到form_for text_area嗎? – user2884789

0

綁定tester()函數的textareaonclick代碼。當用戶點擊textarea時,tester()將被觸發。

<%= f.text_area :notes, placeholder: 'add notes here...', onclick: 'tester()'%> 

$(document).ready(function() { 
    function tester() { 
    $(this).css('height', '200px'); 
    }); 
} 
+0

如果您可以添加關於您更改的內容以及爲什麼的解釋將會很有幫助;-) – Carpetsmoker

+0

您可以編輯您的答案。點擊編輯:-) – Carpetsmoker

相關問題