【问题标题】:Where to put partial specific javascript in rails 2.x在 rails 2.x 中放置部分特定 javascript 的位置
【发布时间】:2010-02-19 22:35:31
【问题描述】:

考虑以下部分,如果有人单击 AJAX“添加评论”链接,它将被插入到页面中。我的问题是:这是包含该 JavaScript 的最佳位置吗?

我认为最好把它放在 application.js 中,但是因为部分是通过 AJAX 添加的,所以在 $(document).ready 块中调用的 validate 方法不会被触发,因为当原始文档是时表单不存在准备好。这有意义吗?

使用 Rails 2.3.4 和 jQuery 1.4.1

谢谢!

<%form_for [@commentable,@comment] do |f|%>
  <%= f.text_area :comment, :class=>"required", :minlength=>2%>

  <% content_tag :button, :type => :submit do %>
    Comment
  <% end %>
<%end%>

<script type="text/javascript">
  $(document).ready(function(){
    $("#new_comment").validate();
  });
</script>

【问题讨论】:

    标签: javascript jquery ruby-on-rails validation


    【解决方案1】:

    不确定您希望何时进行验证,但您似乎可以使用 jQuery 的 live 功能来攻击在您的 application.js 中定义的验证方法到传入部分的提交按钮。

    我的想法是这样的:

    $("#new_comment").live('click', function(event) {
      $(this).validate();
      // or maybe event.target.validate(); ?
    });
    

    【讨论】:

    • 它的语法是什么?我找到了api.jquery.com/live,但不清楚如何在这种情况下应用它。 $("#new_comment").live('validate');在 application.js 中似乎不起作用
    • 这是我使用的语法: $("#new_comment").live('click', function() { $(this).validate(); });
    • 很高兴它成功了!我更新了答案以反映所使用的语法。
    猜你喜欢
    • 2014-02-23
    • 2014-09-05
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多