jquery hora de inicio/validación de hora de finalización

Necesito validar la hora de inicio y la hora de finalización. Parece que obtuve la validación para que funcione parcialmente, pero cuando no hay valor para ambos, entonces no necesito validar, por lo que no es necesario.

$.validator.addMethod("endTimeRange", function() {
        var n=new Date();
        var st = Date.parse( n.getMonth()+1+'/'+n.getDate()+'/'+n.getFullYear() + ' ' + $("#startTime").val());
        var nd = Date.parse( n.getMonth()+1+'/'+n.getDate()+'/'+n.getFullYear() + ' ' + $("#endTime").val());
        return  nd > st;
    }, "Please specify a correct end time, the end time must be before the second.");

    $.validator.addMethod("startTimeRange", function() {
        var n=new Date();
        var st = Date.parse( n.getMonth()+1+'/'+n.getDate()+'/'+n.getFullYear() + ' ' + $("#startTime").val());
        var nd = Date.parse( n.getMonth()+1+'/'+n.getDate()+'/'+n.getFullYear() + ' ' + $("#endTime").val());
        return  st < nd;
    }, "Please specify a correct start time, the start time must be after the end time.");


startTime: {
             required: function(element) {
             return $("#endTime").val().length > 0;

            },
            startTimeRange:true
        },

        endTime: {
             required: function(element) {
             return $("#startTime").val().length > 0;
            },
            endTimeRange:true

        },

preguntado el 03 de mayo de 12 a las 19:05

1 Respuestas

En primer lugar, sus dos métodos de validación hacen lo mismo. Para implementar una validación exitosa si uno o ambos campos están vacíos, simplemente agréguelos a su declaración:

// default is true
var isValid = true;

// if either value is empty, dont validate
if ($("#endTime").val() !== '' && $("#startTime").val() !== '') {
    // start time must be before end time
    isValid = startTime <= endTime;
}

return isValid;

contestado el 03 de mayo de 12 a las 19:05

¿Cómo incorporaría lo que tengo con su sugerencia? sfsfs sfsfsfs

te estás acercando al "¿puedes hacer mi trabajo por mí?" Punto, te sugiero que pases más tiempo tratando de que funcione. - bebe

Cambié la función a esto, valida pero un poco no es correcta. así que cuando selecciono una hora de finalización, todavía muestra el mensaje de error: sfsfs sfsfsfs

$.validator.addMethod("rango de fechas", function() { var n=nueva Fecha(); var st = Fecha.parse( n.getMonth()+1+'/'+n.getDate()+'/' +n.getFullYear() + ' ' + $("#startTime").val()); var nd = Fecha.parse( n.getMonth()+1+'/'+n.getDate()+'/ '+n.getFullYear() + ' ' + $("#endTime").val()); var isValid = true; //alert('1t' + st); // alert('2t' + nd) ; if ($("#endTime").val() !== '' && $("#startTime").val() !== '') { isValid = nd > st; } return isValid; }, "Por favor, especifique una hora válida"); - sfsfs sfsfsfs

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.