jQuery не будет извлекать текст из текстового поля в форме Rails

#javascript #jquery #ruby-on-rails

#javascript #jquery #ruby-on-rails

Вопрос:

Я новичок в Jquery, и это заставляет меня напрягаться.

 <table>
  <tr>
    <th> User Data </th>
    <th> </th>
  </tr>
  <tr>
    <td> <%= f.label :user_name, 'User name' %> </td>
    <td> <%= f.text_field :user_name %> </td>
  </tr>
  <tr>
    <td> <%= f.label :hobby, 'Hobby' %> </td>
    <td id="takeme"> <%= f.text_area :hobby %> </td>
  </tr>
</table>
<a id="send-thoughts" href="">Click</a>
<script>
  jQuery("a#send-thoughts").click(function() {
    var thought = jQuery("td#takeme").val();
    alert(thought);
  });
  //  $("td#takeme").val("monkey cheese");
</script>
  

Это не приведет к извлечению значения из поля «takeme», когда я нажимаю на ссылку …. почему бы и нет??

Примечание: изменение

 jQuery("td#takeme").val();
  

Для

 jQuery("td#takeme").hide();
  

действительно, скрывает поле — так что оно работает хотя бы для чего-то. Но я не могу извлечь содержимое!!!

Ответ №1:

Вместо этого используйте это, вы выбираете родительский элемент вместо фактического ввода

 $("td#takeme > textarea").val();
  

или

назначьте id непосредственно текстовой области

 <%= f.text_area :hobby, id: 'hobby_text' %>
  

а затем в JS

 $("#hobby_text").val();
  

Надеюсь, это поможет!

Комментарии:

1. Когда я это делаю, предупреждение просто говорит «не определено» (без этого предупреждение просто отображает пустую запись, независимо от того, ввел ли я что-либо в текстовую область.)

2. Его нет $("td#takeme > input").val(); , его $("td#takeme > textarea").val();

3. о, второй метод сработал. Спасибо! недавно отредактированный первый, вероятно, тоже хорош

4. Рад, что помогло!