HTML Input form* Attributes


บทนี้อธิบายความแตกต่างของ form* Attributes สำหรับ <input> Element


form Attribute

Input form Attribute ใช้ระบุรูปแบบ <input> Element

ค่าของ Attribute นี้ต้องเท่ากับ Attribute id ขององค์ประกอบ <form> ที่เป็นเจ้าของ

ตัวอย่าง

ช่องป้อนข้อมูลที่อยู่นอกฟอร์ม HTML (แต่ยังคงเป็นส่วนหนึ่งของฟอร์ม):

<!DOCTYPE html>
<html>
<body>

<h1>Input form Attribute</h1>

<p>Attribute ของแบบฟอร์มระบุรูปแบบที่เป็นขององค์ประกอบอินพุต</p>

<form action="action_page.php" id="form1">
  <label for="fname">ชื่อจริง:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <input type="submit" value="ส่ง">
</form>

<p>ช่อง "นามสกุล" ด้านล่างอยู่นอกองค์ประกอบฟอร์ม แต่ยังคงเป็นส่วนหนึ่งของฟอร์ม</p>

<label for="lname">นามสกุล:</label>
<input type="text" id="lname" name="lname" form="form1">

</body>
</html>

formaction Attribute

 Input formaction Attribute ระบุ URL ของไฟล์ที่จะประมวลผลอินพุตเมื่อกดส่งแบบฟอร์ม

หมายเหตุ: Attribute นี้แทนที่ action Attribute ของ <form> Element

formaction ทำงานร่วมกับประเภทอินพุตต่อไปนี้: ส่ง (Submit) และรูปภาพ

ตัวอย่าง

แบบฟอร์ม HTML ที่มีปุ่มส่ง 2 ปุ่ม โดยมีการทำงานที่ต่างกัน:

<!DOCTYPE html>
<html>
<body>

<h1>Input formaction Attribute</h1>

<p>formaction Attribute ใช้ระบุ URL ของไฟล์ที่จะประมวลผลอินพุตเมื่อส่งแบบฟอร์ม</p>

<form action="action_page.php">
  <label for="fname">ชื่อจริง:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">นามสกุล:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="ส่ง">
  <input type="submit" formaction="action_page2.php" value="ส่งแบบแอดมิน">
</form>

</body>
</html>

formenctype Attribute

Input formenctype Attribute ระบุว่าควรเข้ารหัสข้อมูลแบบฟอร์มอย่างไรเมื่อส่ง (สำหรับแบบฟอร์มที่มี method=”post” เท่านั้น)

หมายเหตุ: Attribute นี้แทนที่ enctype Attribute ของ <form> Element

Attribute formenctype ทำงานร่วมกับประเภทอินพุตต่อไปนี้: ส่ง (Submit) และรูปภาพ

ตัวอย่าง

แบบฟอร์มที่มีปุ่มส่งสองปุ่ม ครั้งแรกส่งข้อมูลแบบฟอร์มด้วยการเข้ารหัสเริ่มต้น ครั้งที่สองส่งข้อมูลแบบฟอร์มที่เข้ารหัสเป็น “multipart/form-data”:

<!DOCTYPE html>
<html>
<body>

<h1>Input formenctype Attribute</h1>

<p>Attribute formenctype ระบุว่าควรเข้ารหัสข้อมูลแบบฟอร์มอย่างไรเมื่อส่ง</p>

<form action="action_page.php" method="post">
  <label for="fname">ชื่อจริง:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <input type="submit" value="ส่ง">
  <input type="submit" formenctype="multipart/form-data" value="ส่งเป็น Multipart/form-data">
</form>

</body>
</html>

formmethod Attribute

อินพุต formmethod กำหนดเมธอด HTTP สำหรับการส่งข้อมูลฟอร์มไปยัง URL การดำเนินการ

หมายเหตุ: Attribute นี้แทนที่ method Attribute ของ <form> Element

Attribute formmethod ทำงานร่วมกับประเภทอินพุตต่อไปนี้: ส่ง (Submit) และรูปภาพ

ข้อมูลแบบฟอร์มสามารถส่งเป็นตัวแปร URL (method=”get”) หรือเป็น HTTP Post Transaction (method=”post”)

การใช้งาน “get” :

  • วิธีการนี้ผนวกข้อมูลแบบฟอร์มเข้ากับ URL ในชื่อ/คู่ค่า
  • วิธีนี้มีประโยชน์สำหรับการส่งแบบฟอร์มที่ผู้ใช้ต้องการบุ๊กมาร์กผลลัพธ์
  • มีการจำกัดจำนวนข้อมูลที่คุณสามารถวางใน URL ได้ (แตกต่างกันไปตามเบราว์เซอร์) ดังนั้นคุณจึงไม่สามารถมั่นใจได้ว่าข้อมูลในแบบฟอร์มทั้งหมดจะถูกถ่ายโอนอย่างถูกต้อง
  • อย่าใช้วิธี “get” เพื่อส่งข้อมูลที่ละเอียดอ่อน! (รหัสผ่านหรือข้อมูลที่ละเอียดอ่อนอื่นๆ เพราะจะมองเห็นได้ในแถบเบราว์เซอร์ Address Bar)

การใช้งาน “post”:

  • วิธีนี้ส่งข้อมูลแบบฟอร์มเป็นธุรกรรมหลัง HTTP
  • การส่งแบบฟอร์มด้วยวิธี “post” ไม่สามารถบุ๊กมาร์กได้
  • วิธีการ “post” นั้นแข็งแกร่งและปลอดภัยกว่า “get” และ “post” ไม่มีข้อจำกัดด้านขนาด

ตัวอย่าง

แบบฟอร์มที่มีปุ่มส่งสองปุ่ม โดยมีหน้าต่างเป้าหมายต่างกัน:

<!DOCTYPE html>
<html>
<body>

<h1>Input formmethod Attribute</h1>

<p>formmethod ระบุเมธอด HTTP สำหรับการส่งข้อมูลฟอร์มไปยัง URL</p>

<form action="action_page.php" method="get" target="_blank">
  <label for="fname">ชื่อจริง:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">นามสกุล:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="ส่งโดยใช้ Get">
  <input type="submit" formmethod="post" value="ส่งโดยใช้ Post">
</form>

</body>
</html>

formtarget Attribute

Attribute formtarget ใช้ระบุชื่อหรือคำสำคัญที่ระบุตำแหน่งที่จะแสดงคำตอบที่ได้รับหลังจากส่งแบบฟอร์ม

หมายเหตุ:  Attribute นี้แทนที่ target Attribute ของ <form> Element

 formtarget Attribute ทำงานร่วมกับประเภทอินพุตต่อไปนี้: ส่ง (Submit) และรูปภาพ

ตัวอย่าง

แบบฟอร์มที่มีปุ่มส่งสองปุ่ม โดยมีหน้าต่างเป้าหมายต่างกัน:

<!DOCTYPE html>
<html>
<body>

<h1>Input formtarget Attribute</h1>

<p>formtarget ระบุชื่อหรือคำสำคัญที่ระบุตำแหน่งที่จะแสดงคำตอบที่ได้รับหลังจากส่งแบบฟอร์ม</p>

<form action="action_page.php">
  <label for="fname">ชื่อจริง:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">นามสกุล:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="ส่ง">
  <input type="submit" formtarget="_blank" value="ส่งไปยังหน้าต่าง/แท็บใหม่">
</form>

</body>
</html>

formnovalidate Attribute

Attribute formnovalidate ระบุว่าองค์ประกอบ <input> ไม่ควรตรวจสอบเมื่อส่ง

หมายเหตุ: Attribute นี้แทนที่ novalidate Attribute ของ <form> Element

formnovalidate ทำงานร่วมกับประเภทอินพุตต่อไปนี้: ส่ง (Submit)

ตัวอย่าง

แบบฟอร์มที่มีปุ่มส่งสองปุ่ม (มีและไม่มีการตรวจสอบ):

<!DOCTYPE html>
<html>
<body>

<h1>Input formnovalidate Attribute</h1>

<form action="action_page.php">
  <label for="email">กรอกอีเมลของคุณ:</label>
  <input type="email" id="email" name="email" required><br><br>
  <input type="submit" value="ส่ง">
  <input type="submit" formnovalidate="formnovalidate" value="ส่งโดยไม่มีการตรวจสอบ">
</form>

<p><strong>สำคัญ:</strong>  formnovalidate ไม่รองรับใน Safari 10 (หรือเวอร์ชันก่อนหน้า).</p>

</body>
</html>

novalidate Attribute

novalidate คือ <form> Attribute

novalidate ระบุว่าข้อมูลแบบฟอร์มทั้งหมดไม่ควรถูกตรวจสอบเมื่อส่ง

ตัวอย่าง

ระบุว่าไม่ควรตรวจสอบข้อมูลแบบฟอร์มเมื่อส่ง:

<!DOCTYPE html>
<html>
<body>

<h1>Form novalidate Attribute</h1>

<p>Attribute novalidate ระบุว่าไม่ควรตรวจสอบข้อมูลในแบบฟอร์มเมื่อส่ง</p>

<form action="action_page.php" novalidate>
  <label for="email">กรอกอีเมลของคุณ:</label>
  <input type="email" id="email" name="email" required><br><br>
  <input type="submit" value="ส่ง">
</form>
<br>
<p><strong>หมายเหตุ:</strong> ไม่รองรับแอตทริบิวต์ novalidate ของแท็กแบบฟอร์มในเว็บเบราว์เซอร์ Safari 10 (หรือเวอร์ชันก่อนหน้า)</p>

</body>
</html>

HTML Form and Input Elements

Tagคำอธิบาย
<form>ใช้ระบุ HTML Form สำหรับ User Input
<input>ใช้ระบุ Input Control