在我的表格中,我有两个日期字段,:start_date
和:end_date
,与工作相关。有一个月和一年。date_select:如何用复选框覆盖值?
就像在LinkedIn上一样,结束的一年可能与您目前的工作无关。
因此,当用户勾选“当前位置”框时,我正在寻找将:end_date
替换为"present"
的方式。
什么是正确的方法来做到这一点?
更新
我此刻代码: <%= f.date_select :end_date, { discard_day: true } %>
在我的表格中,我有两个日期字段,:start_date
和:end_date
,与工作相关。有一个月和一年。date_select:如何用复选框覆盖值?
就像在LinkedIn上一样,结束的一年可能与您目前的工作无关。
因此,当用户勾选“当前位置”框时,我正在寻找将:end_date
替换为"present"
的方式。
什么是正确的方法来做到这一点?
更新
我此刻代码: <%= f.date_select :end_date, { discard_day: true } %>
我不会设定一个值,丢弃的结束日期,你可以设置present_job
为真从复选框(添加该属性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
}
});
它的工作原理,谢谢你帮助我得到这个逻辑。 – DoeJ
@Udaykumardas那不是刚刚设置好当前的日期?事情就是在这种情况下没有结束日期,因为工作还没有结束。我更新了我的代码,这是相当基础的。 – DoeJ