【问题标题】:$(this).is(':checked') always returns false$(this).is(':checked') 总是返回 false
【发布时间】:2017-04-25 19:15:37
【问题描述】:

我有一组复选框,我试图在单击单个复选框时获取它的状态。到目前为止,我最好的尝试是在 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)

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

感谢您提供任何见解。

【问题讨论】:

    标签: jquery ruby-on-rails checkbox coffeescript


    【解决方案1】:

    您将事件分配给 &lt;td&gt; 而不是复选框

    尝试使用

    $('.boulderfist :checkbox')
    

    以该 td 类中的复选框为目标

    【讨论】:

    • 谢谢。现在您已经指出了问题,将类移动到复选框似乎是一种更好的方法,而不是使用 CSS。你同意吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    相关资源
    最近更新 更多