ilgiovane ha scritto:
Il problema: ho un modulo html con una trentina di campi,se avviene un certo evento dovrei disabilitare tutto il form con esclusione del campo che ha generato l'errore.La soluzione sarebbe quella di disabilitare campo per campo,ma non mi piace e quindi sto cercando una funzione per disabilitare tutto il form,una volta disabilitato il form abilito il campo che ha generato l'errore e quel campo dovra' essere corretto in modo da riabilitare tutto il form.
Diciamo che, in un modo o nell'altro, se un campo deve rimanere abilitato l'unico modo per ottenere questo effetto è disabilitare campo per campo: poco conta se quello in errore viene saltato, oppure viene riabilitato in seguito.
Se non fai uso di alcuna libreria o script esterno, puoi usare le funzionalità del DOM per trovare i campi di input, ad esempio con
document.getElementsByTagName("input") (ma ci sono anche gli elementi
select, ecc.), oppure sfruttare una classe assegnata da te a tutti i campi di input e usare
document.getElementsByClassName("nomeclasse") per indirizzarli tutti, andando poi a impostare la proprietà
disabled su ciascuno.
Il campo da riabilitare, o da escludere, potresti riconoscerlo dall'attributo
name.
Diciamo che senza avere una idea precisa della struttura HTML con cui stai lavorando, ed esprimendo forti dubbi sulla scelta di un simile approccio davvero poco "user friendly", diventa difficile dire qualcosa di più rispetto al fornirti un paio di funzioni da esaminare e dirti di provare a scrivere il codice.
Mi sembra comunque un modo alquanto insolito per gestire una validazione (non vedo alcun motivo valido per disabilitare altri campi fino a quando un campo in errore non viene corretto).
Ciao!