HTML5 - เว็บฟอร์ม 2.0

Web Forms 2.0 เป็นส่วนขยายของฟีเจอร์ฟอร์มที่พบใน HTML4 องค์ประกอบรูปแบบและแอตทริบิวต์ใน HTML5 ให้มาร์กอัปเชิงความหมายในระดับที่สูงกว่า HTML4 และปลดปล่อยเราจากการเขียนสคริปต์และรูปแบบที่น่าเบื่อมากมายที่จำเป็นใน HTML4

องค์ประกอบ <input> ใน HTML4

องค์ประกอบอินพุต HTML4 ใช้ไฟล์ type แอตทริบิวต์เพื่อระบุประเภทข้อมูล HTML4 มีประเภทต่อไปนี้ -

ซีเนียร์ ประเภทและคำอธิบาย
1

text

ช่องข้อความรูปแบบอิสระไม่มีการแบ่งบรรทัดในนาม

2

password

ช่องข้อความรูปแบบอิสระสำหรับข้อมูลที่ละเอียดอ่อนโดยไม่ต้องขึ้นบรรทัดใหม่

3

checkbox

ชุดของค่าศูนย์หรือมากกว่าจากรายการที่กำหนดไว้ล่วงหน้า

4

radio

ค่าที่แจกแจง

5

submit

ปุ่มรูปแบบอิสระเริ่มต้นการส่งแบบฟอร์ม

6

file

ไฟล์โดยพลการที่มีประเภท MIME และสามารถเลือกชื่อไฟล์ได้

7

image

พิกัดสัมพันธ์กับขนาดของรูปภาพหนึ่ง ๆ โดยมีความหมายพิเศษว่าจะต้องเป็นค่าสุดท้ายที่เลือกและเริ่มการส่งแบบฟอร์ม

8

hidden

สตริงที่กำหนดเองซึ่งโดยปกติจะไม่แสดงต่อผู้ใช้

9

select

ค่าที่แจกแจงเหมือนกับประเภทวิทยุ

10

textarea

ช่องข้อความรูปแบบอิสระโดยไม่มีข้อ จำกัด ในการแบ่งบรรทัด

11

button

ปุ่มรูปแบบอิสระที่สามารถเริ่มต้นเหตุการณ์ที่เกี่ยวข้องกับปุ่ม

ต่อไปนี้เป็นตัวอย่างง่ายๆของการใช้ป้ายกำกับปุ่มตัวเลือกและปุ่มส่ง -

... 
<form action = "http://example.com/cgiscript.pl" method = "post">  
   <p> 
      <label for = "firstname">first name: </label> 
      <input type = "text" id = "firstname"><br /> 
   
      <label for = "lastname">last name: </label> 
      <input type = "text" id = "lastname"><br /> 
   
      <label for = "email">email: </label> 
      <input type = "text" id = "email"><br> 
   
      <input type = "radio" name = "sex" value = "male"> Male<br> 
      <input type = "radio" name = "sex" value = "female"> Female<br> 
      <input type = "submit" value = "send"> <input type = "reset"> 
   </p> 
</form> 
 ...

องค์ประกอบ <input> ใน HTML5

นอกเหนือจากแอตทริบิวต์ที่กล่าวถึงข้างต้นองค์ประกอบอินพุต HTML5 ยังนำเสนอค่าใหม่หลายค่าสำหรับไฟล์ typeแอตทริบิวต์ เหล่านี้แสดงไว้ด้านล่าง

NOTE - ลองใช้ตัวอย่างต่อไปนี้ทั้งหมดโดยใช้เวอร์ชันล่าสุดของ Opera เบราว์เซอร์

ซีเนียร์ ประเภทและคำอธิบาย
1 วันเวลา

วันที่และเวลา (ปีเดือนวันชั่วโมงนาทีวินาทีเศษส่วนของวินาที) เข้ารหัสตามมาตรฐาน ISO 8601 โดยตั้งค่าเขตเวลาเป็น UTC

2 วันที่และเวลาท้องถิ่น

วันที่และเวลา (ปีเดือนวันชั่วโมงนาทีวินาทีเศษส่วนของวินาที) เข้ารหัสตามมาตรฐาน ISO 8601 โดยไม่มีข้อมูลเขตเวลา

3 วันที่

วันที่ (ปีเดือนวัน) เข้ารหัสตามมาตรฐาน ISO 8601

4 เดือน

วันที่ประกอบด้วยปีและเดือนที่เข้ารหัสตามมาตรฐาน ISO 8601

5 สัปดาห์

วันที่ประกอบด้วยตัวเลขปีและสัปดาห์ที่เข้ารหัสตามมาตรฐาน ISO 8601

6 เวลา

เวลา (ชั่วโมงนาทีวินาทีเศษเสี้ยววินาที) เข้ารหัสตามมาตรฐาน ISO 8601

7 จำนวน

ยอมรับเฉพาะค่าตัวเลข แอตทริบิวต์ step ระบุความแม่นยำโดยเริ่มต้นเป็น 1

8 พิสัย

ประเภทช่วงใช้สำหรับช่องป้อนข้อมูลที่ควรมีค่าจากช่วงของตัวเลข

9 อีเมล์

ยอมรับเฉพาะค่าอีเมล ประเภทนี้ใช้สำหรับช่องป้อนข้อมูลที่ควรมีที่อยู่อีเมล หากคุณพยายามส่งข้อความธรรมดาจะบังคับให้ป้อนเฉพาะที่อยู่อีเมลในรูปแบบ [email protected]

10 url

ยอมรับเฉพาะค่า URL ประเภทนี้ใช้สำหรับช่องป้อนข้อมูลที่ควรมีที่อยู่ URL หากคุณพยายามส่งข้อความธรรมดาจะบังคับให้ป้อนเฉพาะที่อยู่ URL ไม่ว่าจะในรูปแบบ http://www.example.com หรือในรูปแบบ http://example.com

องค์ประกอบ <output>

HTML5 แนะนำองค์ประกอบใหม่ <output> ซึ่งใช้เพื่อแสดงผลลัพธ์ของเอาต์พุตประเภทต่างๆเช่นเอาต์พุตที่เขียนโดยสคริปต์

คุณสามารถใช้ไฟล์ forแอตทริบิวต์เพื่อระบุความสัมพันธ์ระหว่างองค์ประกอบเอาต์พุตและองค์ประกอบอื่น ๆ ในเอกสารที่มีผลต่อการคำนวณ (เช่นอินพุตหรือพารามิเตอร์) ค่าของแอตทริบิวต์ for คือรายการ ID ที่คั่นด้วยช่องว่างขององค์ประกอบอื่น ๆ

<!DOCTYPE HTML>

<html>
   <head>
      <script type = "text/javascript">
         
         function showResult() {
            x = document.forms["myform"]["newinput"].value;
            document.forms["myform"]["result"].value = x;
         }
      </script>
   </head>
   
   <body>

      <form action = "/cgi-bin/html5.cgi" method = "get" name = "myform">
         Enter a value : <input type = "text" name = "newinput" />
         <input type = "button" value = "Result"  onclick = "showResult();" />
         <output name = "result"></output>
      </form>
		
   </body>
</html>

มันจะให้ผลลัพธ์ดังต่อไปนี้ -

แอตทริบิวต์ตัวยึดตำแหน่ง

HTML5 เปิดตัวแอตทริบิวต์ใหม่ที่เรียกว่า placeholder. แอตทริบิวต์นี้ในองค์ประกอบ <input> และ <textarea> ให้คำใบ้แก่ผู้ใช้เกี่ยวกับสิ่งที่สามารถป้อนได้ในฟิลด์ ข้อความตัวยึดจะต้องไม่มีการคืนค่าขนส่งหรือฟีดบรรทัด

นี่คือไวยากรณ์ง่ายๆสำหรับแอตทริบิวต์ตัวยึด -

<input type = "text" name = "search" placeholder = "search the web"/>

แอตทริบิวต์นี้รองรับโดยเบราว์เซอร์ Mozilla, Safari และ Crome เวอร์ชันล่าสุดเท่านั้น

<!DOCTYPE HTML>

<html>
   <body>

      <form action = "/cgi-bin/html5.cgi" method = "get">
         Enter email : <input type = "email" name = "newinput" 
            placeholder = "[email protected]"/>
         <input type = "submit" value = "submit" />
      </form>

   </body>
</html>

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

แอตทริบิวต์โฟกัสอัตโนมัติ

นี่เป็นรูปแบบขั้นตอนเดียวที่เรียบง่ายซึ่งตั้งโปรแกรมใน JavaScript ได้อย่างง่ายดายในขณะโหลดเอกสารโดยจะโฟกัสฟิลด์ฟอร์มหนึ่งช่องโดยอัตโนมัติ

HTML5 เปิดตัวแอตทริบิวต์ใหม่ที่เรียกว่า autofocus ซึ่งจะใช้ดังต่อไปนี้ -

<input type = "text" name = "search" autofocus/>

แอตทริบิวต์นี้รองรับโดยเบราว์เซอร์ Mozilla, Safari และ Chrome เวอร์ชันล่าสุดเท่านั้น

<!DOCTYPE HTML>

<html>
   <body>
   
      <form action = "/cgi-bin/html5.cgi" method = "get">
         Enter email : <input type = "text" name = "newinput" autofocus/>
         <p>Try to submit using Submit button</p>
         <input type = "submit" value = "submit" />
      </form>
      
   </body>
</html>

แอตทริบิวต์ที่จำเป็น

ตอนนี้คุณไม่จำเป็นต้องมี JavaScript สำหรับการตรวจสอบความถูกต้องฝั่งไคลเอ็นต์เช่นกล่องข้อความว่างจะไม่ถูกส่งเนื่องจาก HTML5 แนะนำแอตทริบิวต์ใหม่ที่เรียกว่า required ซึ่งจะใช้ดังต่อไปนี้และยืนยันว่ามีค่า -

<input type = "text" name = "search" required/>

แอตทริบิวต์นี้รองรับโดยเบราว์เซอร์ Mozilla, Safari และ Chrome เวอร์ชันล่าสุดเท่านั้น

<!DOCTYPE HTML>

<html>
   <body>
   
      <form action = "/cgi-bin/html5.cgi" method = "get">
         Enter email : <input type = "text" name = "newinput" required/>
         <p>Try to submit using Submit button</p>
         <input type = "submit" value = "submit" />
      </form>
      
   </body>
</html>

มันจะให้ผลลัพธ์ดังต่อไปนี้ -