2015-02-27 6 views
0

Использование жемчуга simple_form и рельсов Я пытаюсь отправить text_area (поле комментариев) только нажатием клавиши возврата. У Facebook есть аналогичная функция, и для этого я снимаю. Исследование онлайн не принесло многого, и я довольно новичок в Javascript. Какие-либо предложения?SimpleForm submit with «return» key

Форма частичного

<%= simple_form_for [@commentable, @comment] do |f| %> 
    <!-- Error messages --> 
    <% if @comment.errors.any? %> 
    <div class="error_messages"> 
     <h2>Please correct the following errors.</h2> 
     <ul> 
      <% @comment.errors.full_messages.each do |msg| %> 
       <li><%= msg %></li> 
      <% end %> 
     </ul> 
    </div> 
    <% end %> 
    <!-- Comment Text Area --> 
    <span class="field" id: "textArea"> 
     <%= f.text_area :content, placeholder: 'Comment...', rows: 3, class: 'story-comment' %><br/> 
    </span> 

    <!-- Submit Button --> 
    <span class="actions" id: "formSubmit"> 
     <%= f.button :submit, "Post Comment", class: "btn btn-default pull-right"%> 
    </span> 
<% end %> 

Форма выходного HTML:

<form accept-charset="UTF-8" action="/statuses/91/comments" class="simple_form new_comment" id="new_comment" method="post" novalidate="novalidate"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="vSpHph2PkCPAiItJ8UJFZh8grkanJA4VQxsdcxrcvig=" /></div> 
    <!-- Error messages --> 
    <!-- Comment Text Area --> 
    <span class="field" id: "textArea"> 
     <textarea class="story-comment" id="comment_content" name="comment[content]" placeholder="Comment..." rows="3"> 
</textarea><br/> 
    </span> 

    <!-- Submit Button --> 
    <span class="actions" id: "formSubmit"> 
     <input class="btn btn btn-default pull-right" name="commit" type="submit" value="Post Comment" /> 
    </span> 
</form> 

Это то, что я придумал до сих пор:

$('#textArea').keypress(function (e) { 
     if (e.which == 13) { 
     $('#formSubmit').submit(); 
     return false; 
     } 
    }); 
+0

1) Ваш formSubmit не является формой - вам нужна форма для вызова .submit() - вам нужно сделать, нажмите() на кнопке 2), что делает тонированное HTML выглядеть 3) какие ошибки в консоли, если они есть? – mplungjan

+0

1) Не 100% уверен, как получить визуализированный HTML. 2) Никаких ошибок в консоли. 3) formSubmit - это просто идентификатор, который я добавил. Я довольно продвинутый с рельсами, но я не знаком с лучшими практиками javascript, поэтому, по общему признанию, эта часть может быть совершенно неправильной. –

+0

Просмотр источника для просмотра html. Текстовая область нуждается в теге формы с действием для отправки – mplungjan

ответ

1

Вы должны представить ФОРМУ не и вам нужно получить доступ к идентификатору textarea

Попробуйте

$('#comment_content').keypress(function (e) { 
    if (e.which == 13) { 
    $('#new_comment').submit(); 
    return false; 
    } 
}); 
+0

Вы не рассказываете нам все, что есть. Например, идентификаторы должны быть уникальными, а идентификаторы должны соответствовать вашему сценарию. – mplungjan

+1

Я вернулся к этому, я предполагаю, что у меня была синтаксическая ошибка в моем JS, которая удерживала это от обстрела. Теперь он отлично работает, и я скопировал ваш код прямо. Благодаря! –

+0

Добро пожаловать. Пожалуйста, удалите первый комментарий для будущих посетителей. – mplungjan