$(this).is(':checked')总是返回false

时间:2017-04-25 19:15:37

标签: jquery ruby-on-rails checkbox coffeescript

我有一个复选框的集合,我试图在单击时获取单个复选框的状态。到目前为止,我最好的尝试是在coffeescript文件中:

if $('.boulderfist').length > 0
    unpressed = true
    $('.boulderfist').on "click", ->
        console.log($(this).is(':checked'))
        unpressed = false

这些框由这个视图创建:

      <%= a.collection_check_boxes(:seminar_ids, current_user.seminars, :id, :name) do |b| %>
        <tr>
          <td width="10%" class="boulderfist"><%= b.check_box %></td>
          <td><%= b.label %></td>
        </tr>
      <% end %>

控制台在每个实例中都打印“False”。这包括已选中的复选框和未选中的复选框。

我也试过

console.log($(this).prop('checked'))

console.log($(this).checked)

console.log(this.prop('checked'))

 console.log(this.checked)

所有其他方法都返回未定义或错误。

感谢您的任何见解。

1 个答案:

答案 0 :(得分:1)

您将事件分配给<td>而不是复选框

尝试使用

$('.boulderfist :checkbox')

定位该td类中的复选框