#javascript #ruby #form-for
#javascript #ruby #форма-для
Вопрос:
Я использую этот кодовый блок для создания формуляра с двумя полями:
<%= form_for @micropost do |f| %>
<%= f.text_area :content, :onKeyUp => "countCharactersLeft(document.forms[0].elements[2],document.forms[0].elements[3],140)" %><br />
<input readonly type="text" name="charsLeft" size="3" maxlength="3" value="140">
<% end %>
Я хочу подсчитать количество символов в первой текстовой области. Для этого я использую функцию JavaScript.
Чтобы заставить функцию работать, я передаю fieldToCount и поле для отображения результата в жестко заданном document.forms[0].elements[2].
Но я хочу получить это динамически. Есть ли способ получить идентификатор из f.text_area для передачи в генерацию вызова javascript?
Ответ №1:
Чтобы найти идентификатор HTML-элемента, просто посмотрите на сгенерированный исходный код. В вашем случае это может быть #content
или #micorpost_content
. Должна быть возможность указать в хэше параметров аргументов text_area
вспомогательного метода идентификатор, который вы хотите использовать. Что — то вроде этого:
<%= f.text_area :content, :id => "my_special_id", :onKeyUp => "countCharactersLeft($('#my_special_id',$('#charsLeft'),140)" %>