2010-07-20 2 views
167

È valido avere <input> senza che sia in un <form>?<input> è ben formato senza un <form>?

Avere un processo per contrassegnare alcuni campi nelle pagine e appena trovato una pagina con campi di input che non sono stati contrassegnati come mi aspettavo.
Mi ci è voluto un po ', ma ho capito che il processo di ottenere gli elementi del modulo e ottenere i campi è ciò che li ha fatti perdere perché non c'è forma.

+0

@Adriano - il mio pensiero esattamente. basta correre e vedere! –

+1

Certo [validatore w3c] (http://validator.w3.org/), avrei davvero dovuto aggiungere che una spiegazione dietro perché sarebbe bello. –

+0

Intendo anche che potrebbe essere valido per alcune versioni di html, ma non per altri, e in tal caso, il validatore è molto più veloce di esaminare gli standard. –

risposta

161

<input> senza <form>appears valid, sì (almeno per HTML 4.01, guarda verso la fine del 17.2.1):

Gli elementi utilizzati per creare controlli compaiono generalmente all'interno di un elemento FORM , ma potrebbe anche apparire all'esterno di di una dichiarazione di elemento FORM quando vengono utilizzati per creare interfacce utente . Questo è discusso nella sezione su eventi intrinseci. Si noti che i controlli all'esterno di un modulo non possono essere controllati correttamente da .

+0

Ho appena creato un tag '' al di fuori di un modulo in Visual Studio 2010 e non ha avuto alcun problema. Quindi sono d'accordo che è strano, anche senza senso, ma non illegale. –

+0

Ta, stavo avendo problemi a trovare quella informazione –

+1

allora qual è il punto di utilizzare il modulo e il nome di input più? possiamo usare tutti input con id, non è più facile per tutti? –

1

Sì, è possibile avere un input valido senza un modulo.

+12

Beh, si potrebbe aver aggiunto qualche prova dietro il 'sì'. O un chiarimento su quali versioni di HTML questo è vero. Comunque, non ti avrei fatto cadere di testa. –

+8

Quindi, con il tuo fondamento logico, perché persino avere un SO se l'utente può semplicemente andare su W3 e cercarlo da solo? Non avrei neanche svalutato te, ma dovrei essere d'accordo sul fatto che quello con più spiegazioni in modo chiaro e conciso ottiene l'upvote, perché una spiegazione e la risposta corretta sono ciò che è più utile qui in SO. – Mattygabe

54

Ho controllato quanto segue con il W3C validator e conferma che questo è valido.

<!DOCTYPE html> 
<html> 
<head> 
    <title>test</title> 
</head> 
<body> 
    <input type='text' /> 
</body> 
</html> 
-5

Certo, utilizzare

document.getElementById('your_input_id').validity.valid 

per verificare la validità di campo in modo dinamico.

+23

Questo non ha nulla a che fare con la validità del markup, invece è per [l'API di validazione dei vincoli] (https://www.w3.org/TR/html5/forms.html#the-constraint-validation-api). Il modo in cui questa risposta ha ottenuto 8 upvotes va oltre. – Stijn