Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.10.2013, 13:09
Новичок на форуме
Отправить личное сообщение для Tkas Посмотреть профиль Найти все сообщения от Tkas
 
Регистрация: 27.10.2013
Сообщений: 2

Получение текущего поля ввода формы
Здравствуйте. Реализую дерево комментариев, нужна проверка, что пользователь ввел текст в поле для ввода комментария. Как сделать проверку только для одного поля (на котором пользователь попытался отправить пустой комментарий), а не для всех полей ввода, которые есть на странице (к сожалению автоматически проверяются на пустоту все поля)?
Вот html.erb, где находится форма

<div class="margin-comment"> 
    <%= form_for код-код-код, remote: true do |f| %>

      <div class="f">ответить
        <div class="answer"> 
          <div class="form-group">
            <%= f.label :text, 'Ваш ответ' %>
            <%= f.text_field :text, class: 'form-control' %> 
          </div>

          <%= f.submit 'Ответить', class: 'btn btn-default' %>
        </div>
      </div>

    <% end %>
  </div>
<span></span>


Вот код jQuery:
$(document).ready(function() {
        $("input[type=submit]").click(function(e) {
        if ($(".form-control").val() == "") {
            $("span").text("Вы не ввели текст!").show().fadeOut(5500);
            e.preventDefault();
        }
    });
});

Пробовал указывать this, но так ничего не работает.
UPDATE:
Указал this в двух местах
$("form").submit(function(e) {
        if ($(".form-control", this).val() == "") {
            $("span", this).text("Вы не ввели текст!").show().fadeOut(5500);
            e.preventDefault();
        }
    });

И подправил html.erb, тег span внес в форму.
Однако появились новые проблемы: сворачивание и разворачивание формы для ввода реализовано через jQuery, вот код:
$(document).ready(function() {
    $(".answer").hide();

    $(".f").click(function(e) {
        if(e.target == this) { 
            $(".answer", this).toggle();
        }
    });

Когда я разворачиваю любую из форм, и нажимаю на submit независимо от того ввел я текст или нет, то автоматически разворачиваются все формы! И свернуть их обратно без перезагрузки страницы уже нельзя! Если попытаться отправить пустой текст из этих полей, то js код, который должен проверить наличие текста в поле - не выполняется. Но отправка непустых комментариев работает. В чем может быть проблема?
UPDATE 2
Забыл сказать: добавление комментариев происходит через Ajax. Вот код:
$("#comments").html("<%=j render partial: 'comments/comment', collection: @post.comments %>");

Последний раз редактировалось Tkas, 27.10.2013 в 15:45.
Ответить с цитированием
  #2 (permalink)  
Старый 27.10.2013, 14:01
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

Цитата:
Пробовал указывать this, но так ничего не работает.
Логично, this в данном случае указывает на submit.
Попробуйте следующим образом:
$(this).parent().find('.form-control').val()
Ответить с цитированием
  #3 (permalink)  
Старый 27.10.2013, 14:18
Новичок на форуме
Отправить личное сообщение для Tkas Посмотреть профиль Найти все сообщения от Tkas
 
Регистрация: 27.10.2013
Сообщений: 2

Сообщение от a_l Посмотреть сообщение
Логично, this в данном случае указывает на submit.
Попробуйте следующим образом:
$(this).parent().find('.form-control').val()
Я исправил эту проблему, но приведенный вами код тоже работает, спасибо А вот насчет моей новой проблемы (см. UPDATE) вы что нибудь знаете?
Ах да, забыл сказать: добавление комментариев происходит через Ajax.

Последний раз редактировалось Tkas, 27.10.2013 в 14:37.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка даты из поля ввода Rainman71 Элементы интерфейса 6 15.04.2012 09:04
Умножение численных значений формы ввода FastSP Общие вопросы Javascript 8 08.04.2012 19:45
Как сделать связанные поля ввода diakon Элементы интерфейса 2 11.12.2009 15:17
Подгружаемые поля формы AlexJ AJAX и COMET 2 26.06.2009 17:04
Передача фокуса из формы после ввода символа kuh Общие вопросы Javascript 2 08.03.2009 18:50