Domanda

Devo convalidare un campo data/ora su una pagina Web, ma desidero che lo faccia senza ricaricare la pagina e vorrei un feedback "immediato" per gli utenti.

Qual è la soluzione migliore/più semplice.A proposito:il più semplice ottiene il 65% dei punti totali

Modificare:E se il migliore fosse il 65% dei punti totali?

È stato utile?

Soluzione 10

Sembra che ci sia un video fantastico su ASP.NET AJAX Control Toolkit che fornisce il controllo MaskedEdit e il controllo MaskedEditValidator che funzionano benissimo.Non è facile per i principianti ma MOLTO buono e feedback immediato.

Grazie per tutte le risposte comunque!

asp.net

Purtroppo non posso accettare questa risposta.

Altri suggerimenti

Se desideri utilizzare JavaScript, ha funzioni di convalida della data integrate.Tuttavia, se non desideri seguire il percorso JavaScript, potresti modificare l'interfaccia utente in controlli a discesa che limiterebbero la capacità degli utenti di inserire dati non validi.Dovresti comunque controllare il lato server per assicurarti che nessuno invii il 30 febbraio.

Controlla questo convalida della data JavaScript funzione.

Utilizza JavaScript, espressioni regolari e l'evento 'onblur' di un input di testo.

@DavidH.Aust

Usare onblur per la validazione è problematico, perché alcune persone usano il tasto Invio, non il mouse, per inviare un modulo.Usare onblur e l'evento onsubmit del modulo insieme potrebbe essere una soluzione migliore.Ai tempi in cui eseguivo molto di più la convalida JS per i moduli, correvo contro eventi keyup.Ciò ha fornito all'utente un feedback immediato sulla correttezza o meno dell'immissione.Puoi (e l'ho fatto) anche mettere in atto dei controlli in modo che l'utente non riceva un messaggio "sbagliato" finché non ha lasciato il campo (poiché non dovresti dirgli che ha torto se non ha finito Ancora).

Consiglierei di utilizzare i menu a discesa per le date, come indicato sopra.Non riesco davvero a pensare a nessun motivo per non farlo: vuoi che l'utente scelga tra dati predefiniti, non che ti dia qualcosa di unico che non puoi anticipare.

Puoi evitare il 30 febbraio con un po' di Javascript (fai in modo che il campo dei giorni venga compilato dinamicamente in base al mese).

@Brian Warshaw
Questo è davvero un buon punto da parte tua nel non dimenticare gli utenti che navigano tramite la tastiera (uh, io).

Grazie per aver portato la nostra attenzione su questo.

Un semplice metodo javascript che legge cosa c'è nel campo di input al momento dell'invio e lo convalida.Se non è valido, restituisce false in modo che il modulo non venga inviato al server.

... onSubmit="return validateForm();" ...

Assicurati di convalidare anche sul lato server, è facile ignorare la convalida JavaScript.

Se utilizzi ASP.NET, dispone di controlli di convalida che puoi puntare a caselle di testo che puoi quindi utilizzare per convalidare i formati di data/ora corretti.

Ci sono un paio di widget per date disponibili nell'etere.Quindi puoi consentire solo input validi.

Ho utilizzato questo piccolo pezzo di codice js in alcuni progetti, verrà aggiornato rapidamente e facilmente insieme ad alcuni altri.

Collegamento

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top