Je développe un projet asp.net MVC4 où j'utilise beaucoup de datequick JqueryUI.
Pour un de mes sélecteurs de dates quand j'ai essayé de cliquer sur l'image Datepicker, j'obtiens une erreur du type,
Uncaught TypeError: Cannot read property 'settings' of undefined jquery-ui-1.10.3.min.js:9
Html
<div>
<input type="text" id="tsDte" style="font-size: 14px;width: 50%" >
<img src="~/Images/dayPicker.png" onclick="tsDatePickerClick()" style="vertical-align:bottom"/>
</div>
Javascript
var currentDate = new Date();
$("#tsDte").datepicker({
dateFormat: 'yy-mm-dd',
maxDate: 0,
changeYear: true
}).attr('readonly', 'readonly');
$("#tsDte").datepicker("setDate", currentDate);
function tsDatePickerClick() {
$("#tsDte").datepicker('show');
}
Ici, j'ai un champ de texte et une image datepicker.Quand je clique sur datepicker image datepicker va apparaître.
j'ai suivi la même manière dans d'autres datepicker et ils fonctionnent bien. J'ai seulement un problème avec ce sélecteur de date.
Toute aide est appréciée.
Je pense que votre datepicker n’a pas été créé correctement. Par conséquent, lorsque vous appelez show
, il attend un objet settings
.
Vous ne l'avez probablement pas créé dans $(document).ready
, vous devriez avoir:
$(document).ready(function(){ //Add this line (and it's closing line)
var currentDate = new Date();
$("#tsDte").datepicker({
dateFormat: 'yy-mm-dd',
maxDate: 0,
changeYear: true
}).attr('readonly', 'readonly');
$("#tsDte").datepicker("setDate", currentDate);
});
J'espère que cela t'aides. À votre santé
Cette même erreur s'affichera si vous essayez d'ouvrir un sélecteur de date sur un champ d'entrée auquel la classe "hasDatepicker" a été attribuée. Supprimez simplement cette classe dans le code HTML.
Avant:
<input type="text" value="01/01/2014" class="hasDatepicker">
Après:
<input type="text" value="01/01/2014">
Vous incluez la bibliothèque jquery-ui-1.10.3.min.js
.
Votre problème est causé par la duplication de vos scripts principaux de l'interface utilisateur de jQuery (vérifiez si vous incluez une autre bibliothèque telle que jquery-ui-1.10.3.drag-drop.min.js
.
Chargez-les une seule fois et votre problème disparaîtra.
Avait le même problème parce que j'avais les deux @ Html.TextBoxFor (m => m.StartDate, "{0: jj/MM/aaaa}", nouveau {@class = "DatePicker"}). @ Html.HiddenFor (m => m.StartDate)
sous la même forme à mon avis.
Dans mon cas, cela était dû au fait que j'avais une étendue avec id date
et que l'entrée avait le même id. Donner à l'entrée un identifiant différent a résolu le problème.