Do wprowadzania daty korzystałem z kontroli kalendarzaw klasycznej aplikacji ASP. Ale kontrola kalendarza nie jest przyjazna dla klawiatury i zajmuje więcej czasu na wprowadzanie danych. Więc później dodałem proste pole tekstowe z walidacją daty. To działa dobrze. Jednak użytkownik musi także umieścić separator daty. Chciałbym umieścić pole wprowadzania daty ze wstępnie skonfigurowanym formatem daty i separatorem, dzięki czemu użytkownik po prostu wpisuje liczby, a pole powoduje również walidację.
Jak mogę to osiągnąć?
Odpowiedzi:
4 dla odpowiedzi № 1Wystarczy użyć jQuery / javascript, aby zamaskować pole tekstowe daty. Automatycznie sformatuje datę, gdy użytkownik wprowadzi wartości. Wymusza także poprawne sprawdzanie poprawności działania.
na przykład wtyczki jQuery wyszukaj:
maska daty jquery: http://digitalbush.com/projects/masked-input-plugin/
2 dla odpowiedzi nr 2
Zawsze możesz umieścić trzy pola tekstowe z separatorem jako tekst (tak jak w starej klasycznej witrynie ASP)
Musisz oddzielić datę w odpowiedzi, a następnie do niej dołączyć DateSerial
po wysłaniu.
1 dla odpowiedzi nr 3
Kiedy stworzyliśmy coś podobnego w przeszłości, pozwoliliśmy użytkownikowi wprowadzić datę do pola tekstowego na kilka różnych sposobów:
- DD / MM / RRRR
- D / M / RRRR
- 0 (na dziś)
Po przesłaniu formularza mieliśmy prostą ASPfunkcja do konwersji DDMMYYYY na DD / MM / RRRR (łańcuch daty musi mieć jednak 8 znaków, ponieważ założeniem było 2 cyfry dla DD, wstaw separator, 2 dla MM itd.) i sprawdź, czy była to poprawna data if formdate = 0 then formdate=now()
reguła.
Musisz dodać sprawdzanie poprawności JavaScript na stronieforma też. W polu tekstowym dodaj zdarzenie onblur, aby sprawdzić, czy te same rzeczy - 8 wprowadzonych cyfr lub poprawna data lub 0 - w przeciwnym razie powiadom użytkownika. (Zrobiłbym to w jQuery, gdybyśmy to robili dzisiaj)
Dzięki Javascript możesz być bardzo pomocny„walidacja”, aby przyspieszyć wprowadzanie danych, jeśli chcesz, na przykład jeśli wiele wprowadzanych dat to wczoraj lub jutro, zezwalaj na -1 lub +1, lub jeśli wprowadzanie danych jest zawsze dla bieżącego miesiąca, ale innego dnia pozwala użytkownikowi po prostu wprowadzić liczbę - 15 i Javascript / jQuery konwertuje ciąg znaków na 15/03/2011.
0 dla odpowiedzi nr 4
Z HTML 5 ... textMode = "Data"
<asp:TextBox ID="TextBoxDate"
runat="server"
CssClass="form-control" Width="561px"
TextMode="Date">
</asp:TextBox>