我們是否可以在另一個表單中有一個表單?這有什麼問題嗎?表單內部的表單,好嗎?
回答
雖然在一個HTML頁面中可以有多個<form>
元素,但不能將它們嵌套。
是的。這是錯誤的。它不會工作,因爲它是錯誤的。大多數瀏覽器只會看到一種形式。
HTML 3規範不是一個很好的鏈接 - 它沒有達到推薦狀態而死亡。 – Quentin 2010-08-07 11:27:38
爲什麼鏈接到舊規格? Html 3.0?有更新的規範... – Oded 2010-08-07 11:27:50
這是唯一一個在描述開始時指定關於此攔截(以及第一個Google搜索結果)的規範。在其他情況下,我只看到有關HTML4和XHTML的論壇討論導致相同的結果。一個論壇帖子甚至提到了一些關於HTML4的內容,儘管我從來沒有聽說過它,也找不到任何示例或證據。 – AlexanderMP 2010-08-07 11:31:22
號HTML明確禁止嵌套形式。
內容模型: 流量的內容,但沒有表單元素後裔。
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
(注意 - (FORM)一節)。
這不是有效的XHTML必須有嵌套窗體。但是,您可以使用多個提交按鈕並使用服務器端腳本根據用戶點擊哪個按鈕來運行不同的代碼。
不,我們不能另一種形式中嵌套形式這樣
<form name='form1'>
<form name='form2'>
//some code here
</form>
</form>
它會在某些情況下工作,但不推薦用於通用平臺。您可以在單個窗體中使用大量的SUBMIT按鈕,但不能適當地管理嵌套窗體。
如果你有一個主表單,並且被迫有一個「帶有表單的表單」這裏是你可以做的......在我的情況下,我有一個在globalHeader中的鏈接,我想在它執行一個帖子時被點擊:
實例形式後與鏈接按鈕提交:
取而代之的是形式...換你輸入一個div:
<div id="gap_form"><input type="hidden" name="PostVar"/><a id="myLink" href="javascript:Form2.submit()">A Link</a></div>
js文件:
$(document).ready(function() {
(function() {
$('#gap_form').wrap('<form id="Form2" action="http://sitetopostto.com/postpage" method="post" target="_blank"></form>');
})();});
這將包裹一切表格內的div「gap_form」內的所有內容,鏈接將提交該表單。我現在有一個確切的例子在一個頁面上工作...(在我的例子中...你可以通過重定向到一個新頁面並在該頁面上提交表單來完成同樣的事情......但我更喜歡這樣)
爲什麼選擇downvote工作解決方案?你不應該downvote沒有留下反饋,爲什麼... – 2013-06-10 13:00:11
好吧,downvote和解釋。 (1)這不能解決「表單內的表單」的固有問題。是的,你已經欺騙瀏覽器嵌套形式。恭喜。但是現在你的文檔是無效的,並且瀏覽器有許可證可以做任何事情。我保證有一個瀏覽器會引發錯誤。 (2)如果出於任何原因JS被禁用,腳本不想加載,或者其他任何原因,這將會打亂所有人。也許你不關心這個,但依靠JS來解決你的混亂問題,而不是首先創建有效的HTML是一種糟糕的設計。 – cHao 2013-08-07 08:38:32
嵌套表單不受支持,不屬於w3c標準(正如你們許多人所說的)。
但是HTML5增加了對輸入的支持,這些輸入不必是任何形式的後代,但可以通過使用「form」屬性以多種形式提交。這並不完全允許嵌套窗體,但通過使用此方法,可以模擬嵌套窗體。
「form」屬性的值必須是表單的id,或者在多個表單的情況下,將表單id與空格分開。
你可以閱讀更多here
另一種解決辦法是啓動包含其自身形式
你有一個例子嗎? – 2017-04-26 16:48:21
表格嵌套可以用新的HTML5輸入元素的形式屬性來實現一個模態窗口。儘管我們沒有在結構上嵌套表格,但是投入的評估方式是以自己的形式進行的。在我的測試中,除IE(IE11)外,3種主流瀏覽器都支持這一功能。表單嵌套限制是HTML UI設計的一大障礙。
這裏是一個示例代碼,當您單擊保存按鈕,你應該看到 「2次3成功」(原件http://www.impressivewebs.com/html5-form-attribute/):
<form id="saveForm" action="/post/dispatch/save" method="post"></form>
<form id="deleteForm" action="/post/dispatch/delete" method="post"></form>
<div id="toolbar">
<input type="text" name="foo" form="saveForm" />
<input type="hidden" value="some_id" form="deleteForm" />
<input type="text" name="foo2" id="foo2" form="saveForm" value="success" />
<input type="submit" name="save" value="Save" form="saveForm" onclick="alert(document.getElementById('deleteForm').elements.length + ' ' + document.getElementById('saveForm').elements.length + ' ' + document.getElementById('saveForm').elements['foo2'].value);return false;" />
<input type="submit" name="delete" value="Delete" form="deleteForm" />
<a href="/home/index">Cancel</a>
</div>
這確實是我們一直在等待的!恥辱的IE ...總是在其餘的......其後...這使得這個偉大的想法對公共網站沒用... – 2015-05-12 15:35:31
_3主要瀏覽器支持this_ ...其餘的是休息;) – 2016-03-30 19:48:16
這是很好知道。我過去使用自定義數據屬性和JavaScript實現了它,當時我可能只包含一個html5填充庫。 – 2017-03-22 18:10:51
- 1. 表單POST從Joomla內部返回302,外部工作良好
- 2. ASP.NET 4表單內的網頁表單
- 3. AngularJS - 陣列內部的動態表單
- 4. 的Java內部類(實現單鏈表)
- 5. 模態內部的表單元素
- 6. ng-if表單標籤內嗎?
- 7. 表格單元作爲其內部文本字段的代表嗎?
- 8. django用戶表 - 創建自定義表單更好嗎?
- 9. 將表單數據從表單傳輸到外部表單
- 10. zend表單內部設置屬性decorator
- 11. 訪問html內部表單數組javascript
- 12. 我如何發佈內部表單?
- 13. 內部在單個表中加入mysql
- 14. 如何在內部提交表單?
- 15. Contact.PHP表單內部服務器錯誤
- 16. 在內容頂部顯示錶單
- 17. 相當於「底部表單」的Android「頂部表單」?
- 18. 帶有內部html錯誤的Firefox簡單表單元素
- 19. AngularJS - 表單良好實踐
- 20. 友好表單驗證(Rails)
- 21. 我可以在單個jsp中使用休眠方式有多個表單動作(表單內部表單)
- 22. Bootstrap 3中非內聯表單中的內聯表單元素?
- 23. 我的表單安全嗎?
- 24. SQL中的單行表:這是一個很好的實現嗎?
- 25. .NET - 內部列表的訂單列表SUM
- 26. 內部表格未提交的html表單
- 27. 我應該在刷完內部表後刷新內部表嗎?
- 28. 表單提交的部分
- 29. 單橋表還是有更好的方法嗎?
- 30. 這是做表單驗證的好設計嗎?
即使不是由OP問,[這裏](HTTP://計算器.com/a/10833860/239527)在一個表單中有多個按鈕的合適解決方案。 – 2013-10-09 15:33:44