Bonjour,
Je suis développeur c# et je n'ai jamais fait de Javascript et j'ai un petit problème depuis hier.
À la base c'est juste pour faire une vérification si la personne est majeure
Je souhaite récuperer la valeur de mon datepicker sous la forme d'une date.
Le problème est que mon var birth = document.getElementById("dropDownBirthdate"); ne fonctionne pas ou renvoie null après tout les essais que j'ai fais :
Mon code :
Mon DatePicker un peu Special :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 //Dans l'ASCX <myTools:DatePicker runat="server" ID="dropDownBirthdate" /> <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Age inférieur à 18 ans" ClientValidationFunction="ValidationDate" ValidationGroup="create"></asp:CustomValidator> // ET <script type="text/javascript"> function ValidationDate(sender, args) { alert("oh"); // Ici tout va bien //TO REDO var birth = document.getElementById("dropDownBirthdate"); alert("ah"); // Ici on ne passe pas //var ddlDate = new date(birth); //var ddlYear = ddlDate.getFullYear(); //Date Actuelle var dtNow = new Date(); var dtNowYear = dtNow.getFullYear(); var elapsed = dtNowYear - ddlYear; if (elapsed > 18) { args.IsValid = true; } else { args.IsValid = false; } } </script>
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //Dans l'ASCX <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DatePicker.ascx.cs" Inherits="myTools.DatePicker" %> <asp:DropDownList runat="server" ID="ddlSelectDay" /> <asp:DropDownList runat="server" ID="ddlSelectMonth" /> <asp:DropDownList runat="server" ID="ddlSelectYear" />
Vraiment je sais plus quoi faire là...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 //Dans l'ASCX.cs public partial class DatePicker : UserControl { public DateTime Date { get { try { return new DateTime(int.Parse(ddlSelectYear.SelectedValue), int.Parse(ddlSelectMonth.SelectedValue), int.Parse(ddlSelectDay.SelectedValue)); } catch { return new DateTime(int.Parse(ddlSelectYear.SelectedValue), int.Parse(ddlSelectMonth.SelectedValue), 1); } } set { ddlSelectDay.SelectedValue = value.Day.ToString(); ddlSelectMonth.SelectedValue = value.Month.ToString(); ddlSelectYear.SelectedValue = value.Year.ToString(); } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { var days = new Dictionary<string, int>(); for (int i = 1; i <= 31; i++) { days.Add(i.ToString().PadLeft(2, '0'), i); } ddlSelectDay.DataSource = days; ddlSelectDay.DataTextField = "Key"; ddlSelectDay.DataValueField = "Value"; ddlSelectDay.DataBind(); var months = new Dictionary<string, int>(); for (int i = 1; i <= 12; i++) { months.Add(i.ToString().PadLeft(2, '0'), i); } ddlSelectMonth.DataSource = months; ddlSelectMonth.DataTextField = "Key"; ddlSelectMonth.DataValueField = "Value"; ddlSelectMonth.DataBind(); var year = new Dictionary<string, int>(); for (int i = DateTime.Now.Year; i >= 1900; i--) { year.Add(i.ToString().PadLeft(2, '0'), i); } ddlSelectYear.DataSource = year; ddlSelectYear.DataTextField = "Key"; ddlSelectYear.DataValueField = "Value"; ddlSelectYear.DataBind(); } } }
Partager