2017-08-21 3 views
0

Demo et code complet comme celui-ci:Comment effacer le texte saisi sur datetimepicker?

https://jsfiddle.net/oscar11/yfjvd200/

Je veux que le datepicker et timepicker pas rempli lors du chargement de la première fois. Je veux que l'outil datepicker ou timepicker soit rempli lorsque l'utilisateur clique sur le texte d'entrée de chacun. Par exemple, l'utilisateur cliquez sur la saisie de texte timepicker alors le temps sera rempli

J'essaie d'utiliser ceci:

$('#datepicker').val(""); 
    $('#timepicker').val(""); 

Mais cela ne fonctionne pas

Comment puis-je faire?

+0

Vous devez écrire ces deux lines '$ ('# datepicker'). val (" "); $ ('# timepicker'). val (" ");' à la fin de la fonction. – ravisachaniya

+0

La datepicker remplit automatiquement le champ de saisie avec la date ?? –

+0

Si cela montre reffer à la documentation, il doit y avoir quelques options –

Répondre

1

Vous avez trouvé la bonne astuce!

$('#datepicker').val(""); 
$('#timepicker').val(""); 

Mais vous ne le faites pas au bon moment. Placez-les APRÈS que les cueilleurs aient été instanciés.

Pour remplir le temps sur le focus, ajoutez .on() à timepicker:

$('#timepicker').datetimepicker({ 
    minDate: moment().add(300, 'm'), 
}) 
    .on('focus', function(e){ 
    if($(this).val() == ""){ 
    $(this).data("DateTimePicker").minDate(moment().add(300, 'm')); 
    } 
}); 

Fiddle

+0

Cela fonctionne. Mais quand je clique d'abord sur le timepicker du texte d'entrée, le temps n'est pas rempli –

+0

Alors, faut-il ajouter dp.change sur le timepicker aussi? –

+0

J'ai édité avec un '.on (" focus "...';;) –

-1

Jetez un oeil à ce violon https://jsfiddle.net/lamp03/yfjvd200/9/. Je l'ai commenté quelques lignes

$(function() { 
    //$('#datepicker').val(""); 
    //$('#timepicker').val(""); 
    console.clear(); 

    $('#datepicker').datetimepicker({ 
    minDate: moment().add(300, 'm').startOf("day") 
    }) 
    //.val(moment().add(300, 'm').format("DD-MM-YYYY")) // To set correct "valid" date from start 

    .on('dp.change', function(e){ 
    var now = moment().format("X"); 
    //console.log(e.date.format("X")); 
    //console.log(now); 

    // Comparing selected date (moment object) in milliseconds 
    if(e.date.format("X")+(300*60*1000) > now){ 
     console.log("above 5 hours, unlocking time."); 
     $('#timepicker').data("DateTimePicker").minDate(false); 
    }else{ 
     console.log("below 5 hours, locking time (and probably resetting the value to min...)"); 
     $('#timepicker').data("DateTimePicker").minDate(moment().add(300, 'm')); 
    } 

    }); 

    $('#timepicker').datetimepicker({ 
    //minDate: moment().add(300, 'm'), 
    }).on('dp.change', function(e){ $('#timepicker').data("DateTimePicker").minDate(moment().add(300, 'm'));}); 
}); 
+0

J'ai mis à jour le code. Veuillez vérifier à nouveau – Lalit

+0

Par fonctionnalité, je voulais dire l'ajout de 300 minutes à la date minimale. d dans le code OP. Je suis sûr de cela parce que c'était le sujet de [une autre question SO] (https://stackoverflow.com/questions/45717230/how-can-i-add-a-minimum-of-days-based-on- heure-dans-datetimepicker/45717963? noredirect = 1 # comment78537372_45717963). –

0

Vous avez juste besoin d'écrire ces lignes à la fin de votre fonction:

$('#datepicker').val(""); 
$('#timepicker').val(""); 

Vous pouvez utiliser ce code:

$(function() { 
    console.clear(); 

    $('#datepicker').datetimepicker({ 
    minDate: moment().add(300, 'm').startOf("day") 
    }) 
    .val(moment().add(300, 'm').format("DD-MM-YYYY")) // To set correct "valid" date from start 

    .on('dp.change', function(e){ 
    var now = moment().format("X"); 
    //console.log(e.date.format("X")); 
    //console.log(now); 

    // Comparing selected date (moment object) in milliseconds 
    if(e.date.format("X")+(300*60*1000) > now){ 
     console.log("above 5 hours, unlocking time."); 
     $('#timepicker').data("DateTimePicker").minDate(false); 
    }else{ 
     console.log("below 5 hours, locking time (and probably resetting the value to min...)"); 
     $('#timepicker').data("DateTimePicker").minDate(moment().add(300, 'm')); 
    } 

    }); 

    $('#timepicker').datetimepicker({ 
    minDate: moment().add(300, 'm'), 
    }); 

    $('#datepicker').val(""); 
    $('#timepicker').val(""); 
}); 
+0

Cela fonctionne. Mais quand je clique sur le texte d'entrée datepicker d'abord, le temps n'est pas rempli –