#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. Рад, что помогло!