Rails:选中复选框后禁用表单字段

时间:2015-02-02 23:33:31

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-4

在我的rails应用程序中,我在我的表单中有这两个字段,当我选中复选框时我试图禁用end_date字段,但是没有成功,所以我想知道如何实现这一目标? 这是我的表格

<%= f.date_select :end_date, start_year: 1945 %> 
<%= f.check_box :is_current %>

3 个答案:

答案 0 :(得分:5)

尝试将此添加到您的javascript文件中,它应该可以正常工作。

$( document ).ready(function() {
    $("#checkBox_id").click(function() {
        var isDisabled = $(#checkBox_id).prop('checked')
        if(isDisabled) {
            $("#endDate_id").removeAttr("disabled");
        } else {
            $("#endDate_id").prop('disabled', true)
        }
    });
});

答案 1 :(得分:0)

简单的JS

$(document).ready(function() {
  return $("#dateCheck").click(function() {
    return $("#endDate").prop("disabled", !this.checked);
  });
});

和HTML

<body>
    <input type="checkbox" id="dateCheck" unchecked/>
    <input type="date" id="endDate" />
</body

答案 2 :(得分:0)

这应该有效。选中该复选框后,将禁用Rails中默认select生成的每个date_select字段。如果这仍然无法解决您的问题,请发布完整的表格,以便我们更好地了解您的问题。

$(document).ready(function() {
  $("[id*='is_current']").click(function() {
    var isCurrent = $(this).prop("checked");
    var endDateSelects = $("[id*='end_date']");
    if (isCurrent == true) {
      endDateSelects.prop("disabled", "disabled");
    }
    else {
      endDateSelects.prop("disabled", false);
    }
  });
});