javascript - 在 Rails 中使用 JQuery 禁用和重新启用表单提交

标签 javascript ruby-on-rails forms

我有一个允许用户发表评论的表单。这是我的提交操作:

 <%= semantic_form_for([@project, step, step.comment_threads.build]) do |f| %>
    <%= f.text_area :body %>
    <%= f.actions do %>
         <%= f.action :submit, :label=>"Comment", :button_html => {:class=> "btn btn-small btn-primary commentSubmit", :disable_with => "Comment"} %>
    <% end %>
<% end %>

如果用户尝试提交空评论,我将禁用表单提交。但我无法在用户在评论框中输入文本后重新启用它。 (当我点击评论按钮时,表单没有提交)。这是我的 JavaScript:

$('.commentSubmit').click(function(){
  var comment = $(this).parents('form').children('.field').find('textarea').val();
  console.log('comment: ' + comment);
  if(comment.length == 0){
    alert('Cannot post an empty comment');
    $(this).parents('form').submit(false);
  }else{
    console.log('submitting form');
    $(this).parents('form').submit();
  }     

});

最佳答案

我最终做的是,如果用户尝试提交带有空评论的表单,则返回 false。它非常适合我!

$('form.comment').submit(function(){
  var comment = $(this).children('.field').find('textarea').val();
  if(comment.length == 0){
    alert('Cannot post an empty comment');
    return false;
  }else{
    $(this).find('.commentSubmit').attr('disabled', true);
  }
});

关于javascript - 在 Rails 中使用 JQuery 禁用和重新启用表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19867430/

相关文章:

ruby-on-rails - Rails 通过 has_and_belongs_to_many 属性进行过滤

forms - 聚合物 : manually submitting a form

python - Django - 如何排除表单字段 View ?

php - 如何使用javascript获取浏览器存储的cookie

javascript - Opera SDK开发

javascript - 管理多个JS文件的简单方法?

ruby-on-rails - rails 3 中的值没有更新

ruby-on-rails - 设计中未初始化的常量 ActiveSupport::SecureRandom

javascript - 表单序列化javascript(无框架)

javascript - 遇到两个正则表达式时分割字符串