ความแตกต่างระหว่างแอตทริบิวต์ id และชื่อใน HTML


717

ความแตกต่างระหว่างidและnameคุณลักษณะคืออะไร? พวกเขาทั้งคู่ดูเหมือนจะทำหน้าที่จุดประสงค์เดียวกันในการจัดให้มีตัวระบุ

ฉันต้องการทราบ (โดยเฉพาะเกี่ยวกับรูปแบบ HTML) ว่าจำเป็นต้องใช้หรือไม่ใช้ทั้งสองอย่างหรือสนับสนุนด้วยเหตุผลใด ๆ ก็ตาม


9
มีเธรดที่ดีมากในหัวข้อนี้ที่stackoverflow.com/questions/7470268/html-input-name-vs-id
Richard Logwood

คำตอบ:


625

nameแอตทริบิวต์ถูกนำมาใช้เมื่อมีการส่งข้อมูลในการส่งแบบฟอร์ม การควบคุมที่แตกต่างกันตอบสนองต่างกัน ตัวอย่างเช่นคุณอาจจะมีปุ่มที่แตกต่างกันหลายกับidคุณลักษณะ nameแต่เดียวกัน เมื่อส่งแล้วจะมีเพียงค่าเดียวในการตอบกลับ - ปุ่มตัวเลือกที่คุณเลือก

แน่นอนมีมากกว่านั้น แต่มันจะทำให้คุณคิดในทิศทางที่ถูกต้องแน่นอน


คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับมันหน่อยได้ไหม ... เมื่อส่งแล้วมีเพียงค่าเดียวในการตอบกลับ - ปุ่มตัวเลือกที่คุณเลือก
NoviceToDotNet

นอกจากปุ่มกดจะมีประโยชน์อะไรบ้าง ?? ฉันคิดว่ามันควรจะมีความแตกต่างอย่างมากนอกเหนือจากนั้น ???
Godage Prageeth

28
@Prageeth: ความแตกต่างคือ "ชื่อ" โอนจากเบราว์เซอร์ไปยังเซิร์ฟเวอร์และสามารถแตกต่างจาก "id" มีหลายเหตุผลที่คนอาจต้องการความแตกต่างนั้น ตัวอย่างเช่นภาษา / กรอบฝั่งเซิร์ฟเวอร์ของคุณอาจต้องการค่าที่ส่งเพื่อให้มีชื่อบางอย่าง แต่จาวาสคริปต์ของคุณจะทำงานได้ดีที่สุดกับสิ่งที่แตกต่างอย่างสิ้นเชิงในรหัส
John Fisher

29
หากต้องการกล่าวอย่างไม่เป็นทางการidคือสิ่งที่ส่วนหน้าของคุณ (CSS, JS) ทำงานร่วมกับในขณะnameที่สิ่งที่เซิร์ฟเวอร์ของคุณได้รับและสามารถดำเนินการได้ นี่เป็นสิ่งที่คำตอบของ Greeso บอกไว้
Saraph

2
อาจเป็นการดีกว่าที่จะพูดว่า: แอตทริบิวต์ name จำเป็นเมื่อส่งข้อมูล ... แทนที่จะเป็น: attribute name ถูกใช้เมื่อส่งข้อมูล ...เนื่องจากข้อมูลฟอร์มใด ๆ ที่ขาดหายไปแอตทริบิวต์nameจะไม่ถูกส่ง (หรือจะไม่แน่นอน ประมวลผลเลยตามข้อกำหนด HTML)
ebyrob

331

ใช้nameคุณลักษณะสำหรับการควบคุมแบบฟอร์ม (เช่น<input>และ<select>) เนื่องจากเป็นตัวระบุที่ใช้ในPOSTหรือการGETโทรที่เกิดขึ้นในการส่งแบบฟอร์ม

ใช้idแอตทริบิวต์เมื่อใดก็ตามที่คุณจะต้องอยู่ที่องค์ประกอบ HTML โดยเฉพาะอย่างยิ่งกับ CSS, JavaScript หรือระบุเศษ เป็นไปได้ที่จะค้นหาองค์ประกอบตามชื่อเช่นกัน แต่ก็ง่ายขึ้นและเชื่อถือได้มากขึ้นในการค้นหาด้วย ID


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

5
@ โทมัส: ไม่จำเป็นต้องผูกระหว่างnameและidที่ทั้งหมด ตัวระบุระบุองค์ประกอบ HTML เฉพาะบนหน้า nameแอตทริบิวต์ขององค์ประกอบรูปแบบ HTML โดยคมชัดไม่ได้จะไม่ซ้ำกันและมักจะไม่ได้เป็นเช่นกับปุ่มหรือหน้าเว็บที่มีหลาย<form>องค์ประกอบ มันเป็นแบบดั้งเดิมที่จะใช้สตริงเดียวกันnameและidที่ทั้งสองจะใช้ในองค์ประกอบ HTML เดียว แต่ไม่มีอะไรทำให้คุณทำเช่นนี้
Warren Young

ฉันกำลังใช้ textarea แบบกำหนดเองที่สามารถตีความมาร์กอัป html บางอย่างฉันใช้ div contentEditable เพื่อทำให้สิ่งนี้สำเร็จ หากเพิ่มแอททริบิวต์ 'name' ลงในแอททริบิวจะทำงานเช่นนั้นหรือไม่
yev

125

นี่คือบทสรุปโดยย่อ:

  • idใช้เพื่อระบุองค์ประกอบ HTML ผ่านDocument Object Model (ผ่าน JavaScript หรือสไตล์ด้วย CSS) idคาดว่าจะไม่ซ้ำกันภายในหน้า

  • nameสอดคล้องกับรูปแบบองค์ประกอบและระบุสิ่งที่จะโพสต์กลับไปยังเซิร์ฟเวอร์


27

ดูhttp://mindprod.com/jgloss/htmlforms.html#IDVSNAMEนี้

ความแตกต่างคืออะไร? คำตอบสั้น ๆ คือใช้ทั้งสองและไม่ต้องกังวลกับมัน แต่ถ้าคุณต้องการที่จะเข้าใจความโง่นี้นี่คือผอม:

id = สำหรับใช้เป็นเป้าหมายเช่นนี้สำหรับการเชื่อมโยงเช่นนี้<some-element id="XXX"></some-element><a href="#XXX"

name = ยังใช้เพื่อติดป้ายกำกับเขตข้อมูลในข้อความที่ส่งไปยังเซิร์ฟเวอร์ด้วย HTTP (HyperText Transfer Protocol) GET หรือ POST เมื่อคุณกดส่งในรูปแบบ

id = เลเบลฟิลด์สำหรับใช้โดย JavaScript และ Java DOM (โมเดลวัตถุเอกสาร) ชื่อใน name = ต้องไม่ซ้ำกันภายในแบบฟอร์ม ชื่อใน id = จะต้องไม่ซ้ำกันในเอกสารทั้งหมด

บางครั้งชื่อ = และ id = ชื่อจะแตกต่างกันเนื่องจากเซิร์ฟเวอร์คาดหวังว่าชื่อเดียวกันจากรูปแบบต่างๆในเอกสารเดียวกันหรือปุ่มตัวเลือกต่าง ๆ ในรูปแบบเดียวกันเช่นในตัวอย่างข้างต้น id = ต้องไม่ซ้ำกัน ชื่อ = ต้องไม่เป็น

JavaScript ต้องการชื่อที่ไม่ซ้ำกัน แต่มีเอกสารจำนวนมากเกินไปที่นี่โดยไม่มีชื่อ = ชื่อที่ไม่ซ้ำดังนั้นคน W3 จึงคิดค้น id แท็กที่จำเป็นต้องไม่ซ้ำกัน น่าเสียดายที่เบราว์เซอร์รุ่นเก่าไม่เข้าใจ ดังนั้นคุณต้องใช้ทั้งแผนการตั้งชื่อในแบบฟอร์มของคุณ

หมายเหตุ: คุณลักษณะ "ชื่อ" สำหรับแท็กบางอย่างเช่น<a>ไม่รองรับ HTML5


2
สับสนเล็กน้อย ... และฉันคิดว่าผิดในบางจุด ไม่ได้เป็นอย่างนี้: nameเป็นสิ่งสำคัญสำหรับ<input>แท็กในการ<form>ส่งเนื่องจากมีการใช้พารามิเตอร์ใน HTTP และidเป็นเพียงตัวระบุที่ไม่ซ้ำกัน
Don Cheadle

นอกจากนี้ผู้ใช้ (ไม่ได้ลงทะเบียน) นี้กำลังเชื่อมโยงไปยังหน้าของตัวเอง (ลิงก์ในโปรไฟล์ของเขาบอกว่าmindprod.com/jgloss ) ฉันไม่ทราบว่าเป็นปัญหาสำหรับ SO แต่ให้ข้อมูลโค้ดที่ค่อนข้างสับสนทำให้รู้สึกไม่เหมาะสม
zb226

23

วิธีที่ฉันคิดเกี่ยวกับมันและใช้งานง่าย:

รหัสใช้สำหรับ CSS และ JavaScript / jQuery (ต้องไม่ซ้ำกันในหน้าหนึ่ง ๆ )

ชื่อจะใช้สำหรับการจัดการแบบฟอร์มใน PHP เมื่อมีการส่งแบบฟอร์มผ่าน HTML (จะต้องไม่ซ้ำกันในรูปแบบ - ในระดับหนึ่งดูความคิดเห็นของPaulด้านล่าง)


2
ไม่จริงทั้งหมด - แอตทริบิวต์ชื่อไม่จำเป็นต้องซ้ำกันในแบบฟอร์มเนื่องจากสามารถลิงก์ปุ่มตัวเลือกเข้าด้วยกัน
Paul

4
นอกจากนี้ยังอาจทำให้คุณประหลาดใจ แต่ PHP ไม่ใช่ภาษาเซิร์ฟเวอร์เดียวในโลก
ดูคมชัดมากขึ้น

@seesharper - ตลกดี ฉันยังโหวตให้คุณ! ใช่นั่นไม่ได้ทำให้ฉันประหลาดใจ :)
35499

14

แท็ก ID - ใช้โดย CSS กำหนดอินสแตนซ์เฉพาะขององค์ประกอบ div, span หรือองค์ประกอบอื่น ๆ ปรากฏขึ้นภายในรุ่น Javascript DOM ช่วยให้คุณเข้าถึงได้ด้วยการเรียกใช้ฟังก์ชันต่างๆ

แท็กชื่อสำหรับฟิลด์ - นี่คือรูปแบบที่ไม่ซ้ำกัน- ถ้าคุณกำลังทำอาร์เรย์ที่คุณต้องการส่งผ่านไปยังการประมวลผล PHP / เซิร์ฟเวอร์ คุณสามารถเข้าถึงผ่าน Javascript ด้วยชื่อ แต่ฉันคิดว่ามันไม่ปรากฏเป็นโหนดใน DOM หรืออาจมีข้อ จำกัด บางอย่าง (คุณไม่สามารถใช้ .innerHTML ตัวอย่างเช่นถ้าฉันจำได้ถูกต้อง)


9
ปุ่มตัวเลือกจะต้องใช้ชื่อเดียวกันเพื่อให้ทำงานได้อย่างถูกต้อง - มันไม่ซ้ำกันต่อแบบฟอร์ม
nickf

ความผิดพลาดของฉัน. แม้ว่าจะอธิบายให้ชัดเจนสำหรับการป้อนข้อความพื้นที่ข้อความและอื่น ๆ แท็กชื่อจะใช้ในการระบุพวกเขา ไม่จำเป็นเฉพาะ
Extrakun

12

โดยทั่วไปสันนิษฐานว่าชื่อนั้นถูกแทนที่ด้วย idเสมอ นี่คือความจริงที่มีขอบเขต แต่ไม่ได้สำหรับเขตข้อมูลแบบฟอร์มและชื่อกรอบจริงพูด ตัวอย่างเช่นด้วยองค์ประกอบแบบฟอร์มnameแอตทริบิวต์จะใช้ในการกำหนดคู่ค่าชื่อที่จะส่งไปยังโปรแกรมฝั่งเซิร์ฟเวอร์และไม่ควรถูกกำจัด Browsers do not use id in that manner. เพื่อให้ปลอดภัยคุณสามารถใช้แอตทริบิวต์ name และ id ในองค์ประกอบของฟอร์ม ดังนั้นเราจะเขียนสิ่งต่อไปนี้:

<form id="myForm" name="myForm">
     <input type="text" id="userName" name="userName" />
</form>

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

ตอนนี้ในองค์ประกอบส่วนใหญ่แอตทริบิวต์ชื่อได้รับการสนับสนุนในความโปรดปรานของแอตทริบิวต์ ID แพร่หลายมากขึ้น อย่างไรก็ตามในบางกรณีโดยเฉพาะอย่างยิ่งในรูปแบบสาขา ( <button>, <input>, <select>และ<textarea>) ชีวิตชื่อแอตทริบิวต์เพราะมันยังคงต้องตั้งคู่ค่าชื่อสำหรับการส่งแบบฟอร์ม นอกจากนี้เราพบว่าองค์ประกอบบางอย่างโดยเฉพาะอย่างยิ่งเฟรมและลิงก์อาจยังคงใช้แอตทริบิวต์ชื่อได้เนื่องจากมักจะมีประโยชน์สำหรับการดึงองค์ประกอบเหล่านี้ตามชื่อ

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

สิ่งนี้นำมาจากหนังสือ JavaScript- The Complete Reference by Thomas-Powell


4
อีกเหตุผลหนึ่งที่ไม่ทำให้เป็นนิสัยเพียงแค่สร้างชื่อการจับคู่ id: คุณอาจมีสองรูปแบบในหน้าหนึ่งซึ่งจำเป็นต้องส่งข้อมูลเดียวกัน (เช่นสองช่องค้นหา) ในกรณีนี้nameควรจะเหมือนกัน (รหัสฝั่งเซิร์ฟเวอร์ไม่สนใจว่าได้ส่งมาอย่างไร) แต่idจะต้องแตกต่างกัน (เพราะจะต้องไม่ซ้ำกันภายในหน้าทั้งหมด)
IMSoP

10

nameเลิกใช้แล้วสำหรับเป้าหมายลิงก์และไม่ถูกต้องใน HTML5 มันไม่ทำงานอย่างน้อยใน Firefox ล่าสุด (v13) เปลี่ยน<a name="hello">เป็น<a id="hello">

เป้าหมายไม่จำเป็นต้องเป็น<a>แท็กอาจเป็น<p id="hello"> หรือ<h2 id="hello">อื่น ๆ ซึ่งมักจะเป็นโค้ดที่สะอาดกว่า

ตามที่โพสต์อื่น ๆ พูดอย่างชัดเจนnameยังคงใช้ (จำเป็น) ในรูปแบบ มันยังคงใช้ในแท็ก META


คุณหมายถึง "name is deprecated สำหรับแท็กลิงก์" แทนที่จะเป็น "ชื่อจะเลิกใช้แล้วสำหรับลิงก์เป้าหมาย" หรือไม่ ตามจริงแล้วลิงก์เป้าหมายอาจเป็น iframe หากคุณไม่ระบุแอตทริบิวต์ name สำหรับ iframe นั้นแอตทริบิวต์ target จะไม่ทำงานกับลิงก์ behaivor นั้นยังคงอยู่สำหรับเบราว์เซอร์ทั้งหมดและเป็นไปตาม HTML5
yucer

ฉันอยู่ที่นี่พยายามคิดวิธีการเชื่อมโยง สมอเช่นเดียวกับในเครื่องหมายของคุณจะไปที่ไหนไป เมื่อคุณมี URL ที่สิ้นสุดใน "#something" ที่ดีที่สุดที่ฉันสามารถบอกได้ว่าใน html ก่อนหน้า 4 จะต้องเป็น <a name="something"> ใน html 4 เป็น <a name="something" id="something"> (การจับคู่) และใน html 5, <a id="something"> แม้ว่า id จะเป็น "global attribute" ในทุกสิ่งก็ตาม สิ่งที่ฉันไม่สามารถตรวจสอบได้คือการยอมรับว่าชื่อนอกเหนือจาก id นั้นยอมรับใน <a> ใน html 5. ตกลงได้หรือไม่การตั้งค่าใดก็ตามที่ฉันมี ...
FutureNerd

9
<form action="demo_form.asp">
<label for="male">Male</label>
<input type="radio" name="sex" id="male" value="male"><br>
<label for="female">Female</label>
<input type="radio" name="sex" id="female" value="female"><br>
<input type="submit" value="Submit">
</form>


6

name Vs id

ชื่อ

  • ชื่อขององค์ประกอบ ตัวอย่างเช่นใช้โดยเซิร์ฟเวอร์เพื่อระบุฟิลด์ในรูปแบบการส่ง
  • องค์ประกอบที่สนับสนุนคือ <button>, <form>, <fieldset>, <iframe>, <input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param>
  • ชื่อต้องไม่ซ้ำกัน

รหัส

  • มักใช้กับ CSS เพื่อจัดองค์ประกอบเฉพาะ ค่าของคุณลักษณะนี้จะต้องไม่ซ้ำกัน
  • Id คือแอตทริบิวต์สากลสามารถใช้กับองค์ประกอบทั้งหมดได้แม้ว่าแอตทริบิวต์อาจไม่มีผลกับองค์ประกอบบางอย่าง
  • ต้องไม่ซ้ำกันในเอกสารทั้งหมด
  • ค่าของแอตทริบิวต์นี้ต้องไม่มีช่องว่างสีขาวตรงกันข้ามกับแอตทริบิวต์ class ซึ่งอนุญาตให้ใช้ค่าคั่นด้วยช่องว่าง
  • ใช้อักขระยกเว้นตัวอักษรและตัวเลข ASCII, '_', '-' และ '.' อาจทำให้เกิดปัญหาความเข้ากันได้เนื่องจากไม่ได้รับอนุญาตใน HTML 4 แม้ว่าข้อ จำกัด นี้จะถูกยกใน HTML 5 แต่ ID ควรเริ่มต้นด้วยตัวอักษรเพื่อความเข้ากันได้

ฉันเคยเห็นnameคุณลักษณะที่ใช้ในองค์ประกอบสไตล์ ฉันคิดว่ามันไม่ถูกต้อง?
Synetech

5

ID ขององค์ประกอบอินพุตของฟอร์มไม่มีส่วนเกี่ยวข้องกับข้อมูลที่มีอยู่ภายในองค์ประกอบ ID ใช้สำหรับเชื่อมองค์ประกอบกับ JavaScript และ CSS แอตทริบิวต์ name อย่างไรก็ตามจะใช้ในคำขอ HTTP ที่เบราว์เซอร์ของคุณส่งไปยังเซิร์ฟเวอร์เป็นชื่อตัวแปรที่เชื่อมโยงกับข้อมูลที่มีอยู่ในแอตทริบิวต์ค่า

ตัวอย่างเช่น

<form>
    <input type="text" name="user" value="bob">
    <input type="password" name="password" value="abcd1234">
</form>

เมื่อส่งแบบฟอร์มแล้วข้อมูลในแบบฟอร์มจะรวมอยู่ในส่วนหัว HTTP ดังนี้:

หากคุณเพิ่มแอตทริบิวต์ ID มันจะไม่เปลี่ยนแปลงอะไรในส่วนหัว HTTP มันจะทำให้เชื่อมโยงกับ CSS และ JavaScript ได้ง่ายขึ้น


2

หากคุณไม่ได้ใช้วิธีการส่งแบบฟอร์มของตัวเองเพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์ (และแทนที่จะทำโดยใช้จาวาสคริปต์) คุณสามารถใช้แอตทริบิวต์ชื่อเพื่อแนบข้อมูลพิเศษเข้ากับอินพุต - เช่นการจับคู่กับค่าอินพุตที่ซ่อนอยู่ แต่ดูดีกว่าเพราะมันรวมอยู่ในอินพุต

บิตนี้ยังคงทำงานใน Firefox แม้ว่าฉันคิดว่าในอนาคตอาจไม่ได้รับอนุญาตผ่าน

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


1

ขึ้นอยู่กับประสบการณ์ส่วนตัวและเป็นไปตามคำอธิบายโรงเรียน W3 สำหรับคุณลักษณะ:

ID เป็น Global Attribute และใช้กับองค์ประกอบเกือบทั้งหมดใน HTML มันถูกใช้เพื่อระบุองค์ประกอบที่ไม่ซ้ำกันบนหน้าเว็บและค่าส่วนใหญ่จะเข้าถึงได้จากส่วนหน้า (โดยทั่วไปผ่าน JavaScript หรือ jQuery)

name คือแอททริบิวต์ที่มีประโยชน์สำหรับองค์ประกอบเฉพาะ (เช่นองค์ประกอบของฟอร์ม ฯลฯ ) ใน HTML ค่าของมันส่วนใหญ่จะถูกส่งไปยังแบ็กเอนด์สำหรับการประมวลผล

https://www.w3schools.com/tags/ref_attributes.asp


0

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

 <form action="action_page.php" id="form1">
 First name: <input type="text" name="fname"><br>
 <input type="submit" value="Submit">
 </form>

 <p>The "Last name" field below is outside the form element, but still part of the form.</p>
 Last name: <input type="text" name="lname" form="form1">

0

รหัส: 1) มันถูกใช้เพื่อระบุองค์ประกอบ HTML ผ่านโมเดลวัตถุเอกสาร (ผ่าน Javascript หรือสไตล์ด้วย CSS) 2) รหัสคาดว่าจะไม่ซ้ำกันภายในหน้า

ชื่อสอดคล้องกับองค์ประกอบของฟอร์มและระบุสิ่งที่โพสต์กลับไปที่เซิร์ฟเวอร์ ตัวอย่าง:

<form action="action_page.php" id="Myform">
 First name: <input type="text" name="FirstName"><br>
 <input type="submit" value="Submit">
 </form>

 <p>The "Last name" field below is outside the form element, but still part of the form.</p>
 Last name: <input type="text" name="LastName" form="Myform">

0

ID ใช้เพื่อระบุองค์ประกอบโดยไม่ซ้ำกัน

ชื่อนี้ใช้ในแบบฟอร์มแม้ว่าคุณจะส่งแบบฟอร์มหากคุณไม่ได้ให้ชื่ออะไรก็ตามจะไม่มีการส่งชื่อใด ๆ ดังนั้นองค์ประกอบของแบบฟอร์มจำเป็นต้องมีชื่อเพื่อรับการระบุโดยวิธีการแบบฟอร์มเช่น "รับหรือดัน"

และสิ่งที่มีชื่อคุณลักษณะเท่านั้นที่จะออกไป


0

idจะให้ element id ดังนั้นเมื่อคุณเขียนโค้ดจริง (เช่น JavaScript) คุณสามารถใช้รหัสในการอ่านองค์ประกอบ นี่nameเป็นเพียงชื่อเพื่อให้ผู้ใช้สามารถเห็นชื่อองค์ประกอบฉันเดา

ตัวอย่าง:

<h1 id="heading">text</h1>
<script>
  document.getElementById("heading"); //Reads the element that has the id "heading".
</script>
//You can also use something like this:
document.getElementById("heading").value; //Reads the value of the selected element.

มีประโยชน์หรือไม่? แจ้งให้เราทราบหากมีปัญหาบางอย่าง


0

ไม่มีความแตกต่างที่แท้จริงระหว่าง id และชื่อ

name เป็นตัวระบุและใช้ในคำขอ http ที่ส่งโดยเบราว์เซอร์ไปยังเซิร์ฟเวอร์เป็นชื่อตัวแปรที่เชื่อมโยงกับข้อมูลที่มีอยู่ในแอตทริบิวต์ค่าขององค์ประกอบ

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

id ถูกใช้โดยเฉพาะอย่างยิ่งในการเพิ่มคุณสมบัติให้กับองค์ประกอบที่ไม่ซ้ำกันในวิธี DOM, Id จะใช้ใน Javascript สำหรับการอ้างอิงองค์ประกอบเฉพาะที่คุณต้องการให้การกระทำของคุณเกิดขึ้น

ตัวอย่างเช่น:

<html>
<body>

<h1 id="demo"></h1>

<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
</body>
</html>

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.