Modifica : qualcuno ha chiarito che stai cercando attributi "validi" "non validi" per DOM.
Aggiungerei attributi a ogni tag utilizzando dom_object.setAttribute("isvalid", "true")
. Potresti anche avere una funzione di convalida centrale che aggiorna questi attributi ogni volta (e usa dom_object.getAttribute("isvalid")
ogni volta).
Puoi eseguire questa funzione ogni volta che un elemento perde il focus, o quando vuoi.
Non esattamente elegante, ma sfortunatamente non esiste il supporto "pseudo" con JavaScript e HTML5 ora.
Se capisco la tua domanda, puoi eseguire la convalida con Javascript. Tuttavia, tieni presente che è molto facile aggirare la convalida lato client, in particolare la convalida javascript . Non dovresti mai fidarti dei dati del client e controllare sempre sul lato server.
Ad esempio, potrei facilmente trovare gli ID degli elementi ispezionando il codice sorgente, quindi document.getElementById('some_id').setAttribute('max', new_number)
modificare il valore massimo (questa era una delle voci dal tuo link).
Ci sono vari modi per farlo, quindi cercherò di darti l'idioma generale.
Puoi afferrare il valore facendo document.getElementById('form_element_id').value
(assicurati di dare il modulo a name
che viene inviato al server e uno id
che viene utilizzato da javascript). Per le aree di testo, puoi usare .innerHTML
.
Quindi hai il valore in una variabile, ci sono vari modi per verificarlo.
Ad esempio, potresti farlo if (parseInt(my_value) < 0) //error
. Potresti anche usare espressioni regolari, non spiegherò tutto ma potresti iniziare qui http://www.w3schools.com/jsref/jsref_obj_regexp.asp . So che w3schools non è la migliore fonte ma trovo che sia un buon punto di partenza.
Ora per la parte di convalida: aggiungi onsubmit="return validateForm()
al tag del modulo dove validateForm () è la funzione che fa tutto il controllo. E la funzione restituisce solo true
se valida e false
altrimenti. Questo sovrascrive la funzione di convalida predefinita (che per impostazione predefinita non fa nulla).
Quindi, nell'esempio sopra, //error
sarebbe sostituito da return false
. Puoi fare anche altre cose; come avvisare l'errore, quindi restituire falso. Puoi anche usare javascript per evidenziare i campi non validi (non sono sicuro se questo è ciò che intendi con " contrassegna un campo di input come non valido / valido da javascript ")
Ovviamente, se non vuoi controllare tutti i campi devi solo restituire true se quelli determinati passano. Ancora una volta, non dovresti fare affidamento su questo, ma se vuoi solo scoraggiare le persone nella media, allora è una soluzione facile.