我想显示一个时间列表下拉时间间隔30分钟,并根据日期。如果日期是今天和过去的时间,那么过去的时间将被禁用。如果日期不是今天,那么它将显示所有的时间表。
let $select = jQuery("#s_time");
for (let hr = 8; hr < 22; hr++) {
let hrStr = hr.toString().padStart(2, "0") + ":";
let val = hrStr + "00";
$select.append('<option val="' + val + '">' + val + '</option>');
val = hrStr + "30";
$select.append('<option val="' + val + '">' + val + '</option>')
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<select name="s_time" id="s_time" class="form-control bmg-hrs-mins-input">
</select>
</div>
我希望已经过去的时间将被禁用,如果日期是今天,如果不是今天,那么它将显示所有的时间表。
发布于 2019-06-18 05:05:59
您可以有条件地disable这些选项。尝试以下几点:
let $select = $("#s_time");
for (let hr = 8; hr < 22; hr++) {
let hrStr = hr.toString().padStart(2, "0") + ":";
let val = hrStr + "00";
$select.append('<option val="' + val + '" ' + (new Date().getHours() >= hr ? 'disabled="disabled"' : '') + '>' + val + '</option>');
val = hrStr + "30";
$select.append('<option val="' + val + '" ' + (new Date().getHours() > hr || (new Date().getHours() >= hr && new Date().getMinutes() > 30) ? 'disabled="disabled"' : '') + '>' + val + '</option>')
}<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
<div>
<select name="s_time" id="s_time" class="form-control bmg-hrs-mins-input"></select>
</div>
发布于 2019-06-18 05:06:51
首先,我们需要比较给定的日期和今天的日期。
Javascript代码
var GivenDate = '2019-06-20';
var CurrentDate = new Date();
GivenDate = new Date(GivenDate);
if(GivenDate > CurrentDate){
// enable select field
$('#s_time').prop('disabled', false);
}else{
// disable select field
$('#s_time').prop('disabled', true);
}希望这会有所帮助!)
https://stackoverflow.com/questions/56641945
复制相似问题