ส่งแบบฟอร์ม HTML ในหน้าตนเอง


103

ฉันต้องการส่งแบบฟอร์ม HTML ให้ตัวเอง ฉันจะใช้actionแอตทริบิวต์ได้อย่างไร

  1. <form action="">
  2. <form action="#">
  3. <form action="some/address">
  4. <form>

แบบไหนดีกว่ากัน?


1
ฉันหวังว่าคุณจะได้เห็นโพสต์นี้stackoverflow.com/questions/1131781/…
Tariqulazam

<doctype> ของเอกสารของคุณคืออะไร ?? มันจะช่วยตอบคุณ
Milche Patern

ง่ายๆเพียงแค่ไม่ใช้แอทริบิวต์การกระทำ
Milche Patern

คำตอบ:


124

ในปี 2013 ด้วย HTML5 ทั้งหมดคุณสามารถละเว้นแอตทริบิวต์ "action" เพื่อส่งแบบฟอร์มด้วยตนเองได้

<form>

จริงๆแล้วส่วนย่อยการส่งแบบฟอร์มของร่าง HTML5 ปัจจุบันไม่อนุญาตให้ดำเนินการ = "" (แอตทริบิวต์ว่าง) มันผิดข้อกำหนด

จากอื่น ๆ คำตอบกองมากเกินนี้


1
ฉันใช้ <? php $ _PHP_SELF?> และได้รับข้อผิดพลาดว่าการดำเนินการต้องไม่ว่างเปล่าฉันเดาว่าไม่สบายก็ทิ้งมันไป
Drewdin

2
ฉันสับสน w3 ถูกต้องactionหรือไม่ที่จะเว้นแอตทริบิวต์ all-together แต่ไม่ต้องปล่อยว่างไว้
mister martin

หากต้องการเข้าถึงพารามิเตอร์ด้วย $ _GET หรือ $ _POST แล้ว?
Black

22

ใช้?:

<form action="?" method="post">

มันจะส่งผู้ใช้กลับไปที่หน้าเดิม


นี่มันเจ๋งมาก!
beppe9000

3
ไม่น่ากลัว การดำเนินการนี้จะลบสตริงการสืบค้นทั้งหมดของ URL ปัจจุบันหากมี
OMA

1
ฉันต้องการลบสตริงการค้นหา: 3
VoidZA

21

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

<form action="">

ตามข้อกำหนด w3cแอ็ตทริบิวต์การดำเนินการต้องไม่ว่างเปล่า URL ที่ถูกต้องโดยทั่วไป นอกจากนี้ยังมีคำอธิบายสำหรับบางสถานการณ์ที่อาจปล่อยแอตทริบิวต์การกระทำว่างไว้

การดำเนินการขององค์ประกอบคือค่าของแอตทริบิวต์ formaction ขององค์ประกอบหากองค์ประกอบเป็นปุ่มส่งและมีแอตทริบิวต์ดังกล่าวหรือค่าของแอตทริบิวต์การดำเนินการของเจ้าของแบบฟอร์มหากมีหรือสตริงว่าง

ดังนั้นทั้งคู่ยังคงใช้ได้และใช้งานได้:

<form action="">
<form action="FULL_URL_STRING_OF_CURRENT_PAGE">

หากคุณแน่ใจว่าผู้ชมของคุณใช้เบราว์เซอร์ html5 คุณสามารถละเว้นแอตทริบิวต์การดำเนินการ:

<form>

คุณสามารถยืนยันว่าแอตทริบิวต์ "action" ว่างเปล่าและตรวจสอบความถูกต้องได้หรือไม่
Milche Patern

4
ไม่ตรวจสอบความถูกต้อง : ค่าไม่ถูกต้องสำหรับการดำเนินการแอตทริบิวต์ในรูปแบบองค์ประกอบ: ต้องไม่ว่างเปล่า
Azd325

2
ตามข้อกำหนด HTML5 ไม่อนุญาตให้ใช้สตริงว่างเป็นการดำเนินการ: w3c.github.io/html/sec-forms.html#element-attrdef-form-action
Thomas

1
นี่เป็นสิ่งเดียวที่เหมาะกับฉัน ลิงก์ <br/> แอ็ตทริบิวต์เนื้อหาการดำเนินการและการจัดรูปแบบหากระบุต้องมีค่าที่เป็น URL ที่ไม่ว่างเปล่าที่ถูกต้องซึ่งอาจล้อมรอบด้วยช่องว่าง ........ หากมีหรือเป็นสตริงว่าง
JoelBondurant

แนวคิดของ "ไม่ตรวจสอบความถูกต้อง" เป็นเรื่องไร้สาระเพราะบุคคลเดียวที่สามารถตรวจสอบ XML ของคุณได้คือคุณ นั่นคือจุดสำคัญของ XML - คุณพูดกฎมากมายที่คุณต้องการให้เป็นจริงสำหรับเอกสาร XML ของคุณเข้ารหัสเป็น DTD และให้ตัวแยกวิเคราะห์ XML ใช้ในการแยกวิเคราะห์ที่ยากหลอกลวง นี่เป็นเหตุผลหนึ่งที่ทำให้ XML ยังคงมีความสำคัญในปัจจุบัน - คุณสามารถใช้โมเดลใดก็ได้ที่คุณต้องการไม่ว่าจะเป็น JSON, ข้อความ, csv, เขียนหม้อแปลงอย่างง่ายจากรูปแบบนั้นเป็น XML, เขียน DTD สำหรับ XML นั้นและคุณสามารถข้ามสิ่งที่ต้องการได้ ในการเขียนโปรแกรมตรวจสอบความถูกต้องของคุณเอง XML ก็ทำไปแล้ว!
Dmitry


-1

คุณสามารถทำได้โดยใช้หน้าเดียวกันในแอตทริบิวต์การกระทำ: action='<yourpage>'

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