我正在编写一个小的jquery函数,它应该检查四个项目的选定输入。选择的主题是"时间"以小时和分钟显示为下拉列表。
我有"来自"小时和"来自"分钟," To"小时和" To"分钟。
我想确保" From"小时和分钟少于" To"小时和小步,直到这是正确的隐藏表单提交按钮。
这就是我所拥有的:
function getvalHT(sel) {
var selectedFromHours = $('#RoomFromTimeH').val();
selectedFromHours = selectedFromHours.replace(/\b0+/g, '');
var selectedToHours = $('#RoomToTimeH').val();
selectedToHours = selectedToHours.replace(/\b0+/g, '');
var selectedFromMin = $('#RoomFromTimeM').val();
selectedFromMin = selectedFromMin.replace(/\b0+/g, '');
var selectedToMin = $('#RoomToTimeM').val();
selectedToMin = selectedToMin.replace(/\b0+/g, '');
if(selectedFromHours < selectedToHours) {
alert ('The "To" hours must be greater than the "From" hours');
$("#savebutton").hide();
} else if(selectedFromMin > selectedToMin) {
alert ('The "To" minutes must be greater than the "From" minutes');
$("#savebutton").hide();
} else {
$("#savebutton").show();
}
}
<select name="RoomToTimeH" id="RoomToTimeH" class="imaindateselTime" onchange="getvalHT(this);">
<select name="RoomToTimeM" id="RoomToTimeM" class="imaindateselTime" onchange="getvalHT(this);">
我有这部分工作,但如果用户选择了正确的时间,则不会出现提交按钮。
我是正确地这样做还是我离开了。
非常感谢你的时间。
答案 0 :(得分:2)
问题: if(selectedFromHours < selectedToHours) {
From小时小于To小时因此有效但您认为它无效。除非小时数相等,否则你不应该检查会议纪要。
<强>解决方案:强>
if逻辑必须改变一点。
if(selectedFromHours < selectedToHours) {
$("#savebutton").show(); // since From hour is smaller don't care about minutes
} else if(selectedFromHours == selectedToHours && selectedFromMin < selectedToMin){
$("#savebutton").show(); //Hours are same but from minute is smaller - VALID
}else {
$("#savebutton").hide(); // any other condition hide the button
}
解释逻辑
if(selectedFromHours < selectedToHours) {
:如果From小时小于To,则无需检查分钟数。这是有效的else if(selectedFromHours == selectedToHours && selectedFromMin < selectedToMin){
:如果From和To Hour相等,那么我们需要检查Minutes,From minutes必须小于To minutes。这是有效的