การใช้ DIV ใน FORM ถูกต้องหรือไม่


86

ฉันแค่สงสัยว่าคุณคิดอย่างไรเกี่ยวกับ DIV-tag ใน FORM-tag?

ฉันต้องการสิ่งนี้:

<form>
  <input type="text"/>
  <div> some </div>
  <div> another </div>
  <input type="text" />
</form>

การใช้งานDIVด้านในโดยทั่วไปFORMหรือฉันต้องการอะไรที่แตกต่างออกไป?

คำตอบ:


134

เป็นเรื่องปกติ

formจะส่งเฉพาะประเภทการควบคุมปัจจัยการผลิต (* ยังTextarea, Selectฯลฯ ... )

คุณไม่มีอะไรต้องกังวลเกี่ยวกับdivภายในไฟล์form.


2
วิธีการใช้แบบฟอร์มภายใน div?
Kick Buttowski

1
@KickButtowski แบบฟอร์มภายใน div ไม่มีปัญหาเลย คุณสามารถทดลองได้ด้วยตัวเองที่โปรแกรมตรวจสอบ HTML นอกจากนี้ทุกวันนี้แทบจะหลีกเลี่ยงไม่ได้เนื่องจากเพจสมัยใหม่สร้างขึ้นจาก div หากไม่ได้รับอนุญาตการห่อแบบธรรมดาหรือการวางแบบฟอร์มในคอนเทนเนอร์จะทำให้หน้านั้นไม่ถูกต้องอยู่แล้ว
Nrzonline

1
การตรวจสอบแบบฟอร์มหยุดทำงานสำหรับฉันแล้วเนื่องจากฉันเพิ่ม div ในแบบฟอร์ม
Suhas

28

เป็นที่ยอมรับอย่างสมบูรณ์ในการใช้ DIV ภายใน<form>แท็ก

ถ้าคุณดูที่เริ่มต้นCSS 2.1 สไตล์ชีต , divและpมีทั้งที่อยู่ในdisplay: blockหมวดหมู่ จากนั้นดูข้อกำหนด HTML 4.01 สำหรับองค์ประกอบแบบฟอร์มไม่เพียง แต่รวม<p>แท็กเท่านั้นแต่<table>แท็ก<div>จะตรงตามเกณฑ์เดียวกัน นอกจากนี้ยังมี<legend>แท็กในแบบฟอร์มในเอกสารประกอบ

ตัวอย่างเช่นสิ่งต่อไปนี้จะผ่านการตรวจสอบความถูกต้องของ HTML4 ในโหมดเข้มงวด:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test</title>
</head>
<body>
<form id="test" action="test.php">
<div>
  Test: <input name="blah" value="test" type="text">
</div>
</form>
</body>
</html>

11

คุณสามารถใช้<div>ภายในแบบฟอร์ม - ไม่มีปัญหาที่นั่น .... แต่ถ้าคุณจะใช้<div>เป็นป้ายกำกับสำหรับสิ่งที่inputไม่ ... labelเป็นตัวเลือกที่ดีกว่ามาก:

<label for="myInput">My Label</label> 
<input type="textbox" name="MyInput" value="" />

3

เป็นเรื่องผิดที่จะให้ <input> เป็นลูกโดยตรงของ <form>

และโดยวิธีการที่ <input / > อาจล้มเหลวในบางประเภท

ตรวจสอบด้วยhttp://validator.w3.org/check


ประเภทเอกสารไม่อนุญาตให้ใช้องค์ประกอบ "INPUT" ที่นี่ ไม่มีแท็กเริ่มต้น "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" อย่างใดอย่างหนึ่ง

<input type = "text" />

องค์ประกอบดังกล่าวไม่ได้รับอนุญาตให้ปรากฏในบริบทที่คุณวางไว้ องค์ประกอบอื่น ๆ ที่กล่าวถึงเป็นองค์ประกอบเดียวที่ได้รับอนุญาตและสามารถมีองค์ประกอบที่กล่าวถึงได้ นี่อาจหมายความว่าคุณต้องการองค์ประกอบที่มีอยู่หรืออาจเป็นไปได้ว่าคุณลืมปิดองค์ประกอบก่อนหน้านี้

สาเหตุหนึ่งที่เป็นไปได้สำหรับข้อความนี้คือคุณได้พยายามใส่องค์ประกอบระดับบล็อก (เช่น "<p>" หรือ "<table>") ไว้ในองค์ประกอบแบบอินไลน์ (เช่น "<a>", "<span> ", หรือ" <font> ")


3

คำถามของคุณไม่ได้ระบุถึงสิ่งที่คุณต้องการใส่ในแท็ก DIV ซึ่งอาจเป็นสาเหตุที่คุณได้รับคำตอบที่ไม่สมบูรณ์ / ผิด ความจริงก็คือคุณสามารถใส่แท็ก DIV ไว้ในแบบฟอร์มของคุณได้ตามที่ Royi กล่าว ตัวอย่างเช่นคุณไม่ต้องการทำเช่นนี้สำหรับป้ายกำกับ แต่ถ้าคุณมีแบบฟอร์มที่มีช่องทำเครื่องหมายจำนวนมากที่คุณต้องการจัดเค้าโครงเป็นสามคอลัมน์ให้ใช้แท็ก DIV (หรือ SPAN, HEADER เป็นต้น .) เพื่อให้ได้รูปลักษณ์และความรู้สึกที่คุณพยายามบรรลุ


3

ความหมายและการใช้งาน

แท็กกำหนดส่วนหรือส่วนในเอกสาร HTML

แท็กใช้เพื่อจัดกลุ่มองค์ประกอบบล็อกเพื่อจัดรูปแบบด้วยสไตล์ http://www.w3schools.com/tags/tag_div.asp

นอกจากนี้ยังDIV - MDN

องค์ประกอบ HTML (หรือ HTML Document Division Element) เป็นคอนเทนเนอร์ทั่วไปสำหรับเนื้อหาโฟลว์ซึ่งไม่ได้แสดงถึงสิ่งใดโดยเนื้อแท้ สามารถใช้เพื่อจัดกลุ่มองค์ประกอบเพื่อวัตถุประสงค์ในการจัดแต่งทรงผม (โดยใช้แอตทริบิวต์คลาสหรือ id) หรือเนื่องจากพวกเขาแชร์ค่าแอตทริบิวต์เช่น lang ควรใช้เมื่อไม่มีองค์ประกอบความหมายอื่น ๆ (เช่นหรือ) ที่เหมาะสมเท่านั้น

คุณสามารถใช้ div ภายในแบบฟอร์มหากคุณกำลังพูดถึงการใช้ div แทนตารางจากนั้น google เกี่ยวกับการออกแบบเว็บแบบไม่มีโต๊ะ


3
จริงๆ? w3schools อ้างอิง?
Adonis K. Kakoulidis

2
@AdonisK. ฉันรู้ทั้งหมดว่าทำไมเราไม่ควรรวมการอ้างอิงถึง w3schools แต่ฉันเชื่อว่ามันไม่สมควรได้รับการลดคะแนนฉันจะขอให้คุณดูการสนทนานี้ใน Meta: meta.stackexchange.com/questions/120025/…นอกจากนี้ฉันได้อัปเดตข้อมูลอ้างอิงของ DIV จาก MDN
Habib

1

อย่างที่คนอื่นบอกมันดีทั้งหมดคุณทำได้ดี สำหรับฉันโดยส่วนตัวฉันพยายามรักษารูปแบบของโครงสร้างลำดับชั้นด้วยองค์ประกอบของฉันโดยให้เป็นองค์ประกอบหลักที่divอยู่นอกสุด ฉันพยายามใช้เฉพาะแบบฟอร์มtable p ulและspanภายใน เพียงแค่ทำให้มันง่ายขึ้นสำหรับผมที่จะติดตามความสัมพันธ์แม่ / เด็กภายในของฉันหน้าเว็บ


0

ฉันสังเกตว่าเมื่อใดก็ตามที่ฉันเริ่มแท็กฟอร์มภายใน div พี่น้อง div ที่ตามมาจะไม่เป็นส่วนหนึ่งของแบบฟอร์มเมื่อฉันตรวจสอบ (ตรวจสอบโครเมี่ยม) ดังนั้นแบบฟอร์มของฉันจะไม่ส่ง

<div>
<form>
<input name='1st input'/>
</div>
<div>
<input name='2nd input'/>
</div>
<input type='submit'/>
</form>

ฉันคิดว่าถ้าฉันวางแท็กแบบฟอร์มไว้นอก DIV มันได้ผล ควรวางแท็กแบบฟอร์มไว้ที่จุดเริ่มต้นของ DIV หลัก เช่นเดียวกับที่แสดงด้านล่าง

<form>
<div>
<input name='1st input'/>
</div>
<div>
<input name='2nd input'/>
</div>
<input type='submit'/>
</form>

-5

ไม่ได้อย่างแน่นอน! มันจะแสดงผล แต่จะไม่สามารถตรวจสอบได้ ใช้ฉลาก.

มันไม่ถูกต้อง ไม่สามารถเข้าถึงได้ คุณเห็นมันในบางเว็บไซต์เพราะนักพัฒนาบางคนขี้เกียจ เมื่อฉันจ้างนักพัฒนานี่เป็นสิ่งแรก ๆ ที่ฉันตรวจสอบในงานของผู้สมัคร แบบฟอร์มเป็นสิ่งที่น่ารังเกียจ แต่ต้องใช้เวลาและเรียนรู้ที่จะทำอย่างถูกต้อง


-8

ไม่มันไม่ใช่

<div>แท็กมักจะใช้ในทางที่ผิดในการสร้างเค้าโครงเว็บ จุดประสงค์เชิงสัญลักษณ์คือการแบ่งส่วน / ส่วนในหน้าเพื่อให้สามารถเพิ่มหรือใช้สไตล์ที่แยกจากกันได้ [เอกสาร w3schools] [W3C]

ขึ้นอยู่กับสิ่งที่คุณsomeและanotherมี

HTML5 มีแท็กที่มีความหมายเชิงตรรกะมากกว่าแทนที่จะมีแท็กเค้าโครงธรรมดา section, header, nav, asideทุกอย่างมีความหมายความหมายของตัวเองไป และจะใช้ต่อต้าน<div>


1
ฉันมักจะเห็นด้วย มีหลายสิ่งที่คุณสามารถทำได้ภายใน html แต่เนื่องจากแนวทางหลวม ๆ เหล่านี้คือสาเหตุที่เราพบว่าตัวเองกำลังขุดคุ้ยความยุ่งเหยิงของเค้าโครงเว็บแบบตารางที่มีโค้ดที่เต็มไปด้วยแฮ็ก วิธีเดียวที่เว็บจะเติบโตได้ก็คือหากเรายังคงปฏิบัติตามแนวทางใหม่ตามที่เสนอให้เราทราบ
JT Smith

ฉันต้องการพื้นที่บนหน้าเว็บ ผู้ใช้คลิกบนพื้นที่นี้และกำหนดค่าในอินพุตแบบฟอร์ม องค์ประกอบ HTML ใดที่เหมาะกับกรณีนี้
เด

1
@demas สำหรับการใช้การกำหนดของคุณ<select>เหมาะอย่างสมบูรณ์แบบหากมีการให้ทางเลือกถ้าไม่ดี<a>หรือ<buttons>ดี
Starx

27
-1 คุณผิดทั้งหมด เว็บไซต์ขนาดใหญ่ทุกแห่งใช้ div ภายในแบบฟอร์ม คุณให้ใน html 5 ตัวอย่างซึ่งไม่มีส่วนเกี่ยวข้องกับคำถาม ขอดูไซต์ขนาดใหญ่หนึ่งไซต์ที่ไม่มี div ในรูปแบบ ผู้คนที่นี่ในไซต์นี้ตอบคำถามโดยไม่ตรวจสอบและทำให้ผู้ใช้รายอื่นเข้าใจผิด
Royi Namir

4
วิธีที่จะไม่สร้างบางสิ่งคือการดูว่าโค้ดขององค์กรทำอย่างไรตามกฎ หากคุณใช้เฉพาะ div เหล่านั้นเพื่อมีข้อความถ้าข้อความนั้นใช้กับตัวควบคุมฟอร์มให้ใช้ป้ายกำกับ ถ้าไม่มีให้ใช้หน้า เรื่องความหมาย การเข้าถึงเป็นเรื่องสำคัญ
albert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.