Maison > interface Web > js tutoriel > Utilisation du contrôle temporel jquery UI Datepicker (3)

Utilisation du contrôle temporel jquery UI Datepicker (3)

PHPz
Libérer: 2021-05-28 16:01:21
avant
3656 Les gens l'ont consulté

Cet article est la version finale de la façon d'utiliser le contrôle de temps jquery UI Datepicker. La fonction implémentée a une heure de début et une heure de fin limitées à trois jours maximum, et est configurée avec un temps d'effacement, un temps de resélection, etc. . Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Utilisation du contrôle temporel jquery UI Datepicker (3)

Laissez-moi d'abord vous montrer deux rendus

Utilisation du contrôle temporel jquery UI Datepicker (3)

Utilisation du contrôle temporel jquery UI Datepicker (3)

Dans l'exemple Le l'heure de début et l'heure de fin que je contrôle sont de trois jours, c'est-à-dire que l'intervalle entre l'heure de début et l'heure de fin ne peut pas dépasser trois jours.

Comment l'implémenter spécifiquement ? Il y aura une explication détaillée dans le code. Veuillez continuer à lire :

La première étape consiste à introduire le contrôle js, ici. il y en a deux, l'un est jquery.js, l'autre est jquery-ui-datepicker.js, et bien sûr le fichier de style est introduit :

<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/jquery-ui-datepicker.js"></script> 
<link rel="stylesheet" type="text/css" href="css/jquery-ui.css" />
Copier après la connexion

Le deuxième étape : Créez une zone de saisie de texte, une saisie de type de texte et le paramètre de temps d'effacement est également écrit dans ma démo, qui est un événement de réponse de bouton

<td width="35%">
    <label>开始时间:</label>
    <input type="text" name="start" id="start" value="${params.start}" readonly="true" title="日期范围不能大于3天"/>
    <input type="button" class="formButton" value="清空" onclick="cleaPrevInput(this);"/>
    <font color="red">必选*</font>
   </td>
   <td width="35%">
    <label>结束时间:</label>
    <input type="text" name="end" id="end" value="${params.end}" readonly="true" title="日期范围不能大于3天"/>
    <input type="button" class="formButton" value="清空" onclick="cleaPrevInput(this);"/>
    <font color="red">必选*</font>
   </td>
Copier après la connexion

Ne vous inquiétez pas pour le. valeur qu'il contient. C'est le code que j'ai écrit dans le projet. La valeur est écrite comme ceci afin que lorsque la page est actualisée après l'interrogation, il puisse toujours y avoir une valeur de temps sélectionnée dans la zone de temps.

Le code suivant sert à appeler le contrôle de date. Le code est le suivant :

$(function(){
 // 获取调用控件的对象
 var dates = $("#start,#end");
 var option;
 //设置目标时间,因为例子中的开始时间和结束时间是有时间限制的
 var targetDate;
 var optionEnd;
 var targetDateEnd;
 dates.datepicker({
  showButtonPanel:false,
  //当选择时间的时候触发此事件
  onSelect: function(selectedDate){ 
   if(this.id == "start"){
   // 如果是选择了开始时间
   option = "minDate";
   //getTimeByDateStr 这个方法的代码下面会贴出来的,就是处理时间的代码
   var selectedTime = getTimeByDateStr(selectedDate);
   var minTime = selectedTime;
   targetDate = new Date(minTime);
   //设置结束时间
   optionEnd = "maxDate";
   targetDateEnd = new Date(minTime+2*24*60*60*1000);
   }else{
   // 如果是选择了结束时间
   option = "maxDate";
   var selectedTime = getTimeByDateStr(selectedDate);
   var maxTime = selectedTime;
   targetDate = new Date(maxTime);
   //设置开始时间
   optionEnd = "minDate";
   targetDateEnd = new Date(maxTime-2*24*60*60*1000);

   }
   //设置时间框中时间,比如根据选择的开始时间,限制结束时间的不可选项,dates.not(this)是js选择器使用,
   //datepicker("option", option, targetDate),这个就是日期控件封装的api了
   dates.not(this).datepicker("option", option, targetDate); 
   dates.not(this).datepicker("option", optionEnd, targetDateEnd); 
  }
 });
});
Copier après la connexion

Publions d'abord le code de la méthode getTimeByDateStr(XXX) dans le code ci-dessus. pour que tout le monde puisse le voir. Ce code est très pratique. C'est simple, je pense que tout le monde peut le comprendre en un coup d'œil :

//根据日期字符串取得其时间
function getTimeByDateStr(dateStr){
 var year = parseInt(dateStr.substring(0,4));
 var month = parseInt(dateStr.substring(5,7),10)-1;
 var day = parseInt(dateStr.substring(8,10),10);
 return new Date(year, month, day).getTime();
}
Copier après la connexion

Le code peut désormais implémenter l'utilisation de contrôles de date, et l'heure de début et l'heure de fin sont limité à trois jours. Par exemple, si vous choisissez l'heure de début comme 2014-03-27, il n'y a que trois options pour l'heure de fin : 27, 28 et 29. Les autres dates ne sont pas cliquables si vous le souhaitez. l'heure de fin doit être 28, alors maintenant l'heure de début ne peut être que 28, 27 et 26, c'est tout.

Étape 3 : Regardez le bouton d'effacement. Le bouton d'effacement consiste à effacer la valeur dans la zone de sélection de l'heure C'est très simple à mettre en œuvre : <🎜. >

//清空日历控件
function cleaPrevInput(objs){
 //清空输入框中的值,但是仅仅是清空了值而已,时间控件的选值限制还在的
 $(objs).prev().val("");
 //如果开始时间和结束时间都清空了,这时应该是你选择的那个框中是没有时间限制的,也就是说可以随便选择日期
 if($(&#39;#start&#39;).val()=="" && $(&#39;#end&#39;).val()==""){
 var dates = $("#start,#end");
 //调用datepicker封装的api,使刚刚设置的开始时间和结束时间为空,这样就可以选择任意日期了
 dates.datepicker("option", "minDate", null);
 dates.datepicker("option", "maxDate", null);
 }
}
Copier après la connexion
Il peut être utilisé maintenant. Si vous utilisez simplement le contrôle, c'est très simple sans définir de limite de temps. Le code ci-dessus peut être utilisé pour la plupart des besoins de sélection de date, mais s'il y a quelque chose de spécial, vous en avez toujours besoin. pour vérifier l'API vous-même, j'ai vérifié l'API pendant longtemps juste pour effacer la valeur dans le contrôle de date, qui est ce code : dates.datepicker("option", "maxDate", null je le fais toujours). il faut que tout le monde ait assez de patience.

Ce qui précède est l'introduction complète du contrôle de temps jquery UI Datepicker. Il est terminé pour le moment. S'il y a des articles connexes dans le futur, je les partagerai avec vous dès que possible. .

Recommandations associées :

Utilisation du contrôle temporel jquery UI Datepicker (1)

Utilisation du contrôle temporel jquery UI Datepicker (2)

Tutoriels vidéo associés recommandés :

Tutoriel jQuery (Vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal