Ha senso rendere obbligatorio un campo che ha un valore predefinito?

6

Considera un menu a discesa "Durata" con 3 opzioni

1. 30 days
2. 60 days
3. 90 days

e per impostazione predefinita 30 giorni sarà il valore selezionato. Ha senso rendere obbligatorio questo elenco a discesa? Abbiamo davvero bisogno di mettere un * (marchio obbligatorio) per questo campo?

    
posta Gopi 07.12.2010 - 06:30
fonte

7 risposte

8

No, non ha senso. L'unico contesto in cui si potrebbe argomentare ha senso è se ci fosse una selezione vuota presente. Ma avere una selezione vuota è disponibile per un campo obbligatorio con un valore predefinito non ha alcun senso.

Se non ci fosse alcun valore predefinito, allora uno vorrebbe un campo vuoto e lo stato richiesto. Così com'è, penso che ciò aggiungerebbe solo confusione.

    
risposta data 07.12.2010 - 06:36
fonte
4

Se * indica solo "obbligatorio", allora non ha senso, in quanto non è necessario modificare il valore per ottenere il modulo da inviare.

Alcuni utenti potrebbero presumere che se non aggiungono qualcosa a un modulo, non verranno pubblicati nell'invio del modulo. A * potrebbe quindi essere un modo per attirare l'attenzione su un campo importante che verrà pubblicato nell'invio del modulo, anche se nessuna azione è tecnicamente richiesta per il modulo da inviare. In questo modo un * è più di un marcatore "questo campo influenzerà la sottomissione " di un marcatore "questo campo è obbligatorio ".

    
risposta data 07.12.2010 - 07:30
fonte
3

Dipende dall'importanza del campo e non dal valore predefinito. Pensi che se questo campo non è obbligatorio darà lo shock utente dopo 30 giorni? Se sì allora dovrebbe essere obbligatorio oppure no. La mia strategia è quella di mantenere obbligatori i campi minimi e alcuni valori predefiniti sufficienti per gli altri. Quindi menziona nella documentazione cosa fa ogni valore e se succede qualcosa quale valore cambiare.

    
risposta data 07.12.2010 - 07:19
fonte
2

In generale, non ha senso, a meno che :

  1. È possibile rifiutare il valore predefinito e restituire invece un valore vuoto.

  2. L'aggiunta del marchio obbligatorio ha sicurezza o altri vantaggi.

Ad esempio, in ASP.Net , rendere obbligatorio un campo utilizzando un validatore rende il campo obbligatorio sia sul client che sul server . Oltre a fornire feedback sul lato client se il campo obbligatorio non è completato (non è utile nel tuo caso), fornisce anche una misura di sicurezza sul server. L'idea è che il server deve rifiutare una richiesta in cui il campo obbligatorio non è stato popolato. Sebbene questo non dovrebbe accadere se fornisci un valore predefinito, non è impossibile . In effetti, può verificarsi quando:

  1. L'uso ha deliberatamente modificato il codice lato client per inviare dati non validi al server
  2. La sessione dell'utente è stata malamente compromessa da una terza parte (virus ecc.)
  3. C'è un errore di programmazione sul lato client

In questi tre casi, il validatore sul lato server assicurerà che il campo vuoto non venga elaborato.

    
risposta data 07.12.2010 - 10:54
fonte
0

Generalmente, probabilmente no. Ma se vuoi assolutamente che l'utente effettui una selezione consapevole, puoi aggiungere qualcosa come <select one> come prima opzione nell'elenco e considerarla obbligatoria nella convalida del modulo.

    
risposta data 07.12.2010 - 07:35
fonte
0

I due sono diversi, ma considerate questo, l'applicazione potrebbe richiedere l'immissione di un valore. Tuttavia, è possibile garantire che tutte le altre applicazioni / dba funzionanti che potrebbero connettersi e aggiornare allo stesso database facciano lo stesso. in caso contrario, come gestirà l'eccezione l'applicazione.

In questi casi rendilo obbligatorio a livello di database per garantire coerenza e risparmiarti il mal di testa di capire perché alcuni elementi causano un problema quando altri non lo fanno e hai solo il front-end dell'applicazione da guardare. Perché un altro processo non ha applicato gli stessi criteri.

    
risposta data 07.12.2010 - 07:46
fonte
0

Da un punto di vista del codice n.

Da un punto di vista dell'interfaccia utente (che è il modo in cui la tua domanda è formulata) direi si .

La ragione per cui dico questo è che, sebbene sia specificato, molte persone leggono "obbligatorio" come "significativo" (quante persone scremano i moduli Web solo riempiendo la più piccola quantità di dati?).

Se il valore specifico nel campo è importante, potresti voler usare l'obbligatorio * per mostrare che non dovrebbe essere semplicemente scremato ma che l'utente dovrebbe dargli qualche considerazione.

Inoltre per i pedanti (e siamo tutti programmatori di computer in modo che dovrebbero essere la maggior parte di noi), sicuramente dovremmo dire che è obbligatorio, quindi dovrebbe essere contrassegnato come tale, indipendentemente dal componente UI utilizzato.

Questo potrebbe anche proteggerti dal cambiamento lungo la linea quando qualcuno dice "lascia che scelgano qualsiasi valore e lo sostituisca con una casella di testo".

    
risposta data 07.12.2010 - 11:14
fonte

Leggi altre domande sui tag