【问题标题】:changing Rails check_box_tag to "checked" with Jquery使用 Jquery 将 Rails check_box_tag 更改为“已选中”
【发布时间】:2012-03-18 04:08:47
【问题描述】:

这方面的代码可能很简单,但我对 Jquery 还不是很感兴趣,而且我在网上找不到解决方案。

在我看来,用户需要能够使用 rails check_box_tag 表单提交从各种植物图像中进行选择。当用户单击植物图像时,我希望其随附的复选框被选中。

我的看法:

<%= form_for @project.prelationships.build(:pfollowed_id => @project_id) do |f| %>
  <% Plant.all.each do |plant| %>
    <h>
      <%= image_tag plant.image_path %>
      <%= check_box_tag "prelationship[pfollower_id][]", plant.id %>
    </h>
  <% end %>
  <%= hidden_field_tag :project_id, @project.id %>
  <%= f.submit "Pfollow" %>
<% end %>  

在我的 application.js 中:

$(function () {
  $("h").click(function () {
    $(this).hide().parent().find(':submit').click();
  });
});  

该 javascript 代码现在的问题是,当您单击图像时,它会提交表单,而不是简单地选中该图像的复选框。如何修改那一行代码以在 onclick 上返回选中的复选框?我在网上看过很多示例解决方案,但他们从未处理过rails的check_box_tag,这似乎需要一个独特的答案。

【问题讨论】:

  • Rails check_box_tag helper 生成普通的旧复选框输入,不需要任何特殊处理。虽然,我不太清楚你为什么要通过:submit 选择器找到兄弟标签,并在需要通过input[type='checkbox'] 选择器找到孩子时单击它并使用.prop('checked', true) 进行检查。顺便说一句,&lt;h&gt; 是什么标签?我错过了什么还是应该是&lt;h1&gt; 或其他类型的标题标签?

标签: javascript jquery ruby-on-rails checkbox onclick


【解决方案1】:

如果我猜到你的意思,这应该可以解决它:

$(function() {       
    $("h").click(function() {
        $(this).find('input:checkbox').prop("checked", true);
    });
});

查看它的工作原理: http://jsfiddle.net/RZUfs/

【讨论】:

  • 谢谢,@大卫。这就是我一直在寻找的。我只是无法用我初出茅庐的 Javascript 技能来获得正确的语法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多