J'ai une liste de sélection avec des nombres dedans. Ces chiffres vont de 0 à 30. Je veux cacher les nombres en fonction du nombre de jours en dehors de la date actuelle et de la date définie par l'utilisateur.Comment faire pour que cela fonctionne dans tous les navigateurs autres que Firefox
Donc, si aujourd'hui est le 28 juillet 2010 et qu'ils se fixent le 29 juillet 2010, il ne devrait afficher que "0".
Si c'était Juillet 28 2010 et ils ont mis en 20ème Septembre 2010, il devrait montrer 0 à 30.
J'ai donc ce
var selectedDate = new Date($('#TextBox').val().replace(/\/(\d\d)$/, "/20$1"));
var currentDate = new Date();
var month = currentDate.getMonth() + 1
var day = currentDate.getDate()
var year = currentDate.getFullYear()
currentDate = new Date(month + "/" + day + "/" + year);
if (isNaN(selectedDate) == false)
{
$('#selectList').find('select').attr('disabled', '');
var diffDays = parseInt((selectedDate - currentDate)/(1000 * 60 * 60 * 24));
var Options = $('#selectList').find('option');
jQuery.each(Options, function (i, value)
{
var currentValue = $(this).val();
if (currentValue == -1)
{
// equal to continue;
return true;
}
else if (currentValue >= diffDays)
{
$(this).hide();
}
else
{
$(this).show();
}
});
}
Ce code se produit sur le changement de la zone de texte où l'utilisateur sélectionnerait une date.
Cela fonctionne très bien dans FireFox mais ne fonctionne pas dans les autres navigateurs. Je ne sais pas pourquoi. Aucune erreur n'est affichée dans l'un des navigateurs.
avez-vous essayé 'currentDate = nouvelle date (année, mois-1, jour);' ?? – Pointy
Je ne suis pas sûr que 'isNaN()' fonctionne sur les dates construites en utilisant 'new Date()'. Il devrait certainement fonctionner sur les horodateurs construits en utilisant 'Date.parse()'. Après avoir vérifié 'isNaN()' sur cela, vous pouvez ensuite créer la date en utilisant 'new Date (timestamp)'. –