2016-11-16 50 views
0

我在写一个小的jquery函数,该函数应该检查四个项目的选定输入。所选择的时间以小时和分钟显示为下拉列表的“时间”。Jquery,验证表单提交前的输入

我有“From”小时和“From”分钟,“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

是输入24小时制或12小时制? –

+0

嗨,它的24小时格式 – DCJones

+0

你能发布你的完整的html代码吗? – prasanth

回答

2

问题:if(selectedFromHours < selectedToHours) {从小时小于到小时这样它的有效但你认为它是无效的。除非小时数相等,否则你不应该检查分钟数。

解决方案:

的逻辑,如果必须改变一个位。

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) {:如果从小时是不是那么小的就没有必要检查分钟。这是有效的
  • else if(selectedFromHours == selectedToHours && selectedFromMin < selectedToMin){:如果From和To Hour等于那么我们需要检查Minutes,From分钟必须小于To分钟。这是有效的
  • 任何其他条件是无效的