Ruby form_for.text_field и javascript

#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)" %>