问题是我的 Rails 应用程序中有几个文本字段,它们基于用户的 anv 日期,我想将其与他们为我的文本框 Leave_start 选择的日期进行比较。我希望发生的是,如果他们选择的休假开始日期大于或等于今年的 anv 日期,如果休假开始日期小于或等于他们的 anv 日期,则将我的 future 文本框更改为"is"将 future 文本框更改为“NO”。我尝试了几种不同的方法,但每次无论我选择什么日期,它总是将 future 更改为“NO”,即使该日期大于我用户的 anv。任何帮助将不胜感激!!!
*旁注这是我的日期选择器默认格式 dateFormat: 'mm-dd-yy' 对于我的leave_start 文本字段。
这是我的 Application.js
$(document).ready(function(){
$('#leave_start').change(function() {
var anv = $('.anv').val();
var l_start = $('#leave_start').val();
if (l_start >= future) {
$('#future').val('YES');
} else if (l_start <= future ) {
$('#future').val('NO');
}
});
});
这是我的观点
#this is the my var anv...
%td.lt= f.text_field :grab_date, :id => 'anv', :class => 'anv', :value => @grab_adj.strftime('%m-%d-%Y')
#this is my var l_start...
%td.lt.feed= f.text_field :leave_start, :label => false, :id => 'leave_start', :input_html => {:value => ''}
#this is the future text box I want to change to 'YES' or 'NO'
%td.lt.feed= f.input_field :future, :as => :select, :id => 'future', :class => 'future', :label => false, :collection => ["YES", "NO"]
最佳答案
首先不要使用 2 位数年份格式作为流行错误的讨论原因 Y2K Bug. 在比较日期之前,您将日期转换为毫秒,然后进行比较。
$(document).ready(function(){
$('#leave_start').change(function() {
var anv_date = Date.parse($('.anv').val()); // Date in milliseconds
var l_start_date = Date.parse($('#leave_start').val()); // Date in milliseconds
if (l_start_date >= anv_date) {
$('#future').val('YES');
} else if (l_start_date <= anv_date ) {
$('#future').val('NO');
}
}); });
关于javascript - 如果某个值大于或等于 javascript 中的某个值,则想要更改该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31382482/