我在compute
函数中有一些计算。
function compute() {
var c = $('select#time_from_hour').val();
var d = $('select#time_from_minute').val();
var e = $('select#time_to_hour').val();
var f = $('select#time_to_minute').val();
var g = $('input#date_from').val();
var h = $('input#date_to').val();
var hour1 = g + ' ' + c + ':' + d;
var hour2 = h + ' ' + e + ':' + f;
hour1 = hour1.split("/");
var hour1 = hour1[1] + "," + hour1[0] + "," + hour1[2];
var timestamp = (new Date(hour1).getTime() / 1000) + 7200;
$('#total_hour1').val(timestamp);
hour2 = hour2.split("/");
var hour2 = hour2[1] + "," + hour2[0] + "," + hour2[2];
var timestamp = (new Date(hour2).getTime() / 1000) + 7200;
$('#total_hour2').val(timestamp);
var x = -$('input#total_hour1').val();
var y = -$('input#total_hour2').val();
var total_time = x - y;
result = total_time / 86400;
new_number = Math.ceil(result);
if (isNaN(new_number)) {
var new_number = 0;
}
$('#finish_day').val(new_number);
if (parseInt($("#finish_day").val()) < 4) {
$('#get_car, #return_car').not(this).children('#return_car option[value=' + this.value + ']').attr('selected', true).siblings().attr('disabled', true);
$('#three_day').show(2000);
} else {
$('#get_car > option, #return_car > option').prop('disabled', false);
$('#three_day').hide(2000, function() {
$(this).remove();
});
}
}
$('select#time_from_hour').change(compute);
$('select#time_from_minute').change(compute);
$('select#time_to_hour').change(compute);
$('select#time_to_minute').change(compute);
$('select#return_car').change(compute);
$('select#get_car').change(compute);
$('input#finish_day').change(compute);
if
当输入字段中的数据发生更改时,我尝试强制脚本动态重新计算函数#finish_day
。
if (parseInt($("#finish_day").val()) < 4) {
$('#get_car, #return_car').not(this).children('#return_car option[value=' + this.value + ']').attr('selected', true).siblings().attr('disabled', true);
$('#three_day').show(2000);
} else {
$('#get_car > option, #return_car > option').prop('disabled', false);
$('#three_day').hide(2000, function() {
$(this).remove();
});
}
它仅在我更改数据时才更改#get_car
工作示例:http: //jsfiddle.net/amarcinkowski/W7NHK/25/
问题如下:
我有一个预订表格,我在其中使用日期选择器,其中有两个日期框:开始和结束,以及两个带有可用城市列表的选择表单字段。根据所选日期,脚本计算天数。
如果天数少于 4,则在所选城市列表之一(第二个 - City2)上更改活动城市的可用性并自动选择在第一个列表(City1)中选择的城市。因此,如果我们在第一个列表城市中选择 - 例如卡托维兹,并且第二个列表脚本中的天数小于 4,则会自动标记卡托维兹城市,其他城市将处于非活动状态(禁用)。
当天数大于 4 天时,问题就开始了。这两个列表都是完全活跃的,您可以选择任何城市,没有任何限制。如果您选择不同的城市然后更改日期,并且天数下降到 3(例如),整个脚本应重新计算值并在第二个窗口中设置,即在第一个窗口中选择的城市(City1 = City2)。不幸的是,这不会发生。此外,在第二个列表中,您可以选择任何城市——所有城市都处于活动状态。仅当您从第一个列表中选择城市时,整个脚本才会重新计算。