2016-07-20 12 views
0

Ich verwende 2 jquery datepickers. Wenn die Werte der Datepickers gleich sind - möchte ich verhindern, dass Time 2 größer als Time 1 ist. Die Zeiten sind 24hr HHMM (4 Zeichen) Textfelder.Validierung - 1 Feld nicht größer als ein anderes

Wenn das Kalender nicht gleich sind, geht alles für die Zeiten ....

Ich habe es irgendwie funktioniert, aber es ist nicht genau ... ich kann die Felder ändern und sich um die Validierung der I nicht wollen ....

auch weiß nicht, ob "focusout" ist der Weg zu gehen ...

http://jsfiddle.net/rbla/90ps4h9n/5/

html ...

Start Date: <input type="text" id="StartDate" name="datepicker1" value="" /> 
    End Date: <input type="text" id="EndDate" name="datepicker2" value="" /> 

    <br/><br/> 

    Time 1: <input type="text" id="StartTime" maxlength="4"> 
    Time 2: <input type="text" id="EndTime" maxlength="4"> 

    <div class="error" style="display:none">Time 1 needs to be less than Time 2<div> 

Javascript ...

$(function() { 
     $("#StartDate").datepicker({ 
     dateFormat: "dd-M-yy" 
     }); 
     $("#EndDate").datepicker({ 
     dateFormat: "dd-M-yy" 
    }); 
    }); 

    $("#EndDate").change(function() { 
     var sDate = document.getElementById("StartDate").value; 
     var eDate = document.getElementById("EndDate").value; 

     if ((Date.parse(eDate) === Date.parse(sDate))) { 

      $("#EndTime").focusout(function(){ 

      if(parseFloat($("#StartTime").val()) > parseFloat($("#EndTime").val())) 
       { 
       $(".error").css("display","block").css("color","red"); 
       $("#submit").prop('disabled',true); 
       document.getElementById("EndTime").value = ""; 
       } 
       else 
       { 
       $(".error").css("display","none"); 
       $("#submit").prop('disabled',false);   
       } 
     }); 
    } 
}); 

Antwort

0

Ich glaube, Sie zwei Objekte Datum Datum vergleichen ('date') durch Vergleichsoperator

if(parseFloat($("#StartTime").val()) > parseFloat($("#EndTime").val())) 

ersetzen

if(new Date($("#StartTime").val()) > new Date($("#EndTime").val())) 

Ich bin mir nicht sicher, ob ich genau die Änderungen vorgenommen habe, die Sie benötigen. aber ich habe dir eine Idee über den Vergleich von Datumsobjekten gegeben.

Verwandte Themen