2012-02-14 11 views
5

A rischio di sembrare come un pazzo - I progettisti html (HTML5) presso la nostra azienda mi tengono consegna schernisce funzionali con tag form che non hanno attributi ...Tag del modulo HTML senza attributi - qualsiasi motivo per non farlo?

<form> 
    <label for="name">Name</label> 
    <input type="text" id="name" name="name"> 
</form> 

Ogni volta che vedo questo perdo la speranza in umanità solo un po 'di più. Ma non so se dovrei arrotondare tutti loro e dar loro lezioni sugli attributi del modulo e perché ne abbiamo bisogno, dal momento che non riesco a trovare alcuna documentazione che dica che sono "richiesti". Per impostazione predefinita, so che il tag form assumerà le cose, come metodo e azione, ma preferisco che gli attributi siano presenti piuttosto che omessi. È proprio come è sempre stato per quelli di noi che hanno scritto HTML sin dall'inizio.

Quindi la domanda generale è - C'è qualcosa di sbagliato (tuttavia si desidera definirlo) con l'uso del tag form senza attributi? Se l'azione desiderata è la pagina corrente e si ottiene il metodo previsto, quale argomento è presente per includere o escludere gli attributi predefiniti? O assegnando un ID che non usi?

mi aspettavo di vedere questo:

<form id="search_form" action="" method="get"> 
    <label for="name">Name</label> 
    <input type="text" id="name" name="name"> 
</form> 

risposta

8

Esso dipenderà dal DOCTYPE state convalidando contro. Ad esempio in HTML 4.01 Transitional and Strict, è richiesto l'attributo action mentre l'attributo method è facoltativo.

In HTML 5 entrambi gli attributi sono facoltativi.

+0

Questo non è troppo difficile da trovare, ma è difficile trovare qualcosa che menzioni se un tag del modulo può essere completamente vuoto. Indietro nel giorno, il nome è stato deprecato per il tag form e l'ID è stato richiesto per la convalida. Ora non vedo nulla in particolare affermando che dovrebbe essere lì. –

+3

@KaiQing, basta usare http://validator.w3.org/ –

1

Sembra che l'azione è richiesto dallo standard HTML 4.

action  %URI;   #REQUIRED 

http://www.w3.org/TR/html4/interact/forms.html

+0

Eppure, la maggior parte dei browser sarà felice di impostare il valore sull'URL corrente (assumendo la modalità di quirks). – Oded

+0

Vero, ma tecnicamente per l'html convalidare che dovrebbe essere un'azione vuota, non un'azione affatto. –

+0

Sì, supponendo che DOCTYPE sia corretto;) – Oded

3

Il più grande problema di non avere un id e action attributi in un modulo è che se si dispone di più di un modulo nella pagina è molto difficile dire quale viene indicato - in entrambi i client o del server codice.

Come James Montagne menziona in his answer per HTML 4.01 è necessario l'attributo action.

Come un problema generale, io personalmente sarebbe sempre esplicito sul id, action e method - mantiene questi importanti attributi allo scoperto e fa il punto che essi non sono stati dimenticati.

+0

Questo è stato il mio sentimento più o meno sul problema. Mi piace dichiararli perché ha senso farlo - per mancanza di un modo migliore di dirlo. Quando lo lasciano fuori non so se è perché pensano che sia il modo giusto per farlo o se assumono che sto andando a riempirlo con le informazioni giuste.Ma non assumiamo ragazzi html per lasciare buchi e richiedere audit completi. Altrimenti lo faremmo da soli e risparmiamo un po 'di tempo. –

+2

@KaiQing - Se questo è il tuo requisito da parte loro, parlane con loro. – Oded

+1

Vero - in questo post tutto quello che stavo veramente cercando era una sorta di documentazione che affermava che i tag del form avevano effettivamente bisogno di qualcosa in loro. Altrimenti, il mio argomento è solo opinione o preferenza. Sembra che in questo caso sia solo questo. Il modulo verrà inviato senza attributi. –

Problemi correlati