date_select:如何用复选框覆盖值?

时间:2016-11-02 07:08:05

标签: ruby-on-rails

在我的表单中,我有两个与作业相关的日期字段:start_date:end_date。有一个月和一年。

就像在LinkedIn上一样,对于你目前的工作,最后一年可能不相关。

因此,当用户勾选方框"当前位置"时,我正在寻找用:end_date替换"present"的方法。

正确的方法是什么?

更新

我的代码: <%= f.date_select :end_date, { discard_day: true } %>

1 个答案:

答案 0 :(得分:0)

我不会设置丢弃结束日期的值,我会从复选框中将present_job设置为true(将此属性添加到jobs表)。这会忽略或清除结束日期。

before_validation :clear_end_date, :if => :present_job

validate :end_date, :presence => true, :unless => present_job

def clear_end_date
  self.end_date = nil
end

此外,使用此复选框可以在视觉上禁用并清除表单中的end_date。您只需添加一个事件以查看状态是否更改并更新结束日期字段。

$(".checkbox").change(function() {
    if(this.checked) {
        // Disable end_date select box and make other visual changes
    }
});

jQuery checkbox checked state changed event