<Giriş> <form> olmadan iyi biçimlendirilmiş mi?


226

<input>Olmadan olması geçerli <form>midir?

Sayfalardaki bazı alanları işaretlemek için bir işlem yapın ve girdi alanlarının beklediğim gibi işaretlenmediği bir sayfa buldum.
Biraz zamanımı aldı ama form öğelerini alma ve sonra alanları elde etme sürecinin, bu formun kaçırılmamasına neden olan şey olduğu ortaya çıktı.


@Adriano - tam olarak düşüncem. sadece geçip gör!
Gabriel Hurley

1
Tabii w3c validator , gerçekten neden güzel olacağını arkasındaki bir açıklama eklemeliydim.
Greg Domjan

Ayrıca, html'nin bazı sürümleri için geçerli olabileceğini, ancak diğerleri için geçerli olmayabileceğini ve bu durumda doğrulayıcı, standartlara bakmaktan çok daha hızlı olduğunu ifade ediyor.
Adriano Varoli Piazza

Yanıtlar:


201

<input>Bir olmaksızın <form> geçerli görünür , evet (html 4.01, 17.2.1 sonuna yakın bir görünüm için en azından):

Denetimleri oluşturmak için kullanılan öğeler genellikle bir FORM öğesinin içinde görünür, ancak kullanıcı arabirimleri oluşturmak için kullanıldıklarında bir FORM öğesi bildiriminin dışında da görünebilir. Bu, iç olaylarla ilgili bölümde tartışılmaktadır. Bir formun dışındaki denetimlerin başarılı denetimler olamayacağını unutmayın.


7
Form verilerini bir sunucuya gönderebilme (Ajax kenara).
Ludovic Kuty

5
@PhilipSmith Yorumunuzun uzun zaman önce yazılmış olduğunu biliyorum . Ama bunun neden garip veya anlamsız olduğunu düşünüyorsun? Denetim bir sunucu ile iletişim kurmuyorsa neden bir form oluşturmak isteyeyim?
adam-beck

18
"Başarılı kontrol" nedir?
AlikElzin-kilaka

22
Bir form işlenmek üzere gönderildiğinde, bazı denetimlerin adları geçerli değerleriyle eşleştirilir ve bu çiftler formla birlikte gönderilir. Ad / değer çiftlerinin gönderildiği denetimlere başarılı denetimler denir. w3c
SantiBailors

3
@ adam-beck Örneğin, belirli bir AngularJS web sitesi girdileri işler, verileri işler ve bir API'ye gönderir. Formlar için HTML şablonları herhangi bir form etiketi olmadan yazılabilir ve sunucu ile iyi iletişim kurar.
sr9yar

75

W3C doğrulayıcı ile aşağıdakileri kontrol ettim ve bunun geçerli olduğunu onayladı.

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

6

Daha güncel bir spesifikasyona referans:

HTML 5.2 - W3C Tavsiyesi (14 Aralık 2017)

Formla ilişkili bir <form>öğenin, öğenin form sahibi olarak adlandırılan bir öğeyle ilişkisi olabilir . Bir formla ilişkili öğe bir <form>öğeyle ilişkilendirilmemişse , form sahibinin boş olduğu söylenir.


4

MDN'ye göre şunlar mümkündür:

Bir form widget'ını bir öğenin dışında kullanmak her zaman mümkündür ancak bunu yaparsanız, bu form widget'ının herhangi bir formla ilgisi yoktur. Bu widget'lar bir formun dışında kullanılabilir, ancak daha sonra kendi başlarına hiçbir şey yapmayacakları için bu widget'lar için özel bir planınız olmalıdır. JavaScript ile davranışlarını özelleştirmeniz gerekecek.

HTML5, HTML form öğelerinde form niteliğini sunar. Bir form etiketi içinde olmasa bile, bir öğeyi bir forma açıkça bağlamanıza izin vermelidir. Ne yazık ki, şimdilik, bu özelliğin tarayıcılar arasında uygulanması, buna güvenecek kadar iyi değil.


2

Bu sorunun oldukça eski olduğunu biliyorum, ancak başarıyla form etiketleri olmadan birçok karmaşık veri giriş sayfası oluşturdum. Birçoğu tarafından "standart" olarak görülmese de, a olmadan giriş kullanmak uygun değildir <form>. Projelerim, sayfanın nasıl davrandığı ve varsayılan form davranışının yolunda gittiği üzerinde tam kontrole ihtiyaç duyduğum örneklerdi. Sayfa ve alan düzeyinde doğrulama (JS kullanarak) gerçekleştirebildi ve Ajax aramaları vb. İle verileri "gönderdi" ... aslında, bu benim bu günlerde tercih ettiğim yol.

JS bir sürü gereklidir, ama bu o kadar zor değil ve yeniden kullanılabilir kod olarak kolayca yapılır.

Ben de def Giriş Sayfaları gibi girişleri ile formları KULLANMAYIN başka örnekler de vardır.

Umarım bu referans birine yardım eder.


1

Evet, form olmadan geçerli bir girişiniz olabilir.


14
'Evet'in arkasına bazı kanıtlar ekleyebilirdiniz. Ya da bunun hangi HTML sürümleri için geçerli olduğuna dair bir açıklama. Yine de seni mahvetmezdim.
Adriano Varoli Piazza

9
Öyleyse, mantığınızla birlikte, kullanıcı sadece W3'e gidip kendini arayabilirse neden SO'ya sahip olabilirsiniz? Ben de sizi reddedemezdim, ama açık ve özlü bir şekilde daha fazla açıklamaya sahip olanın oyu aldığını kabul etmeliyim, çünkü burada bir açıklama ve doğru cevap en çok yardımcı olan şeydir.
Mattygabe

-10

Tabii, kullanın

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

alanın geçerliliğini dinamik olarak kontrol etmek.


31
Bunun biçimlendirme geçerliliği ile ilgisi yoktur, bunun yerine kısıtlama doğrulama API'sı içindir . Bu cevabın nasıl 8 oy aldığını aştı.
user247702
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.