基于HTML 規范:
4.10.21.2 隱式提交
表單元素的默認按鈕是樹形順序中的第一個提交按鈕,其表單所有者是該表單元素。
如果用戶代理支持讓用戶隱式提交表單(例如,在某些平臺上,當文本控制元件獲得焦點時按下“enter”鍵會隱式提交表單),那么對于默認按鈕具有激活行為的表單執行此操作并且未被禁用,必須使用戶代理在該默認按鈕處觸發單擊事件。
Web 上的某些頁面只有在有隱式提交表單的方法時才可用,因此強烈建議用戶代理支持這一點。
如果表單沒有提交按鈕,那么如果表單有多個阻止隱式提交的欄位,則隱式提交機制必須什么都不做,否則必須從表單元素本身提交表單元素。
我的期望是當一個表單有多個輸入元素(并且沒有提交按鈕)時,當用戶點擊輸入按鈕時,表單不應該被隱式提交。
我有一個帶有按鈕(不是提交按鈕)和多個輸入元素的表單。
<form id="myForm" method="post" action="/dosomething">
<input id="validCategory0" name="validCategory" type="radio" value="Yes">Yes
<input id="validCategory1" name="validCategory" type="radio" value="No">No
<br/>
<input id="itemid" type="hidden" />
<br/> First Name
<input id="fn" width="200" />
<br/>
<button type="button">Submit</button>
</form>
使用上面的 HTML,當游標位于名字文本框內并且用戶按 Enter 鍵時,表單將被提交。當表單中有多個輸入元素時,我不確定為什么要提交表單。
我正在使用 Chrome
演示
我的觀察:如果我hidden如下更改輸入元素,則不會隱式提交表單。
從
<input id="itemid" type="hidden" />
到
<input id="itemid" hidden />
uj5u.com熱心網友回復:
因此,正如我在評論中所說,您忘記添加引文中宣告的部分:
“為了上一段的目的,一個元素是一個阻止隱式提交表單元素的欄位,如果它是一個輸入元素,其表單所有者是該表單元素并且其型別屬性處于以下狀態之一:文本,搜索, URL, 電話, E-mail, 密碼, 本地日期和時間, 日期, 月, 周, 時間, 數字"
因此,單選按鈕、復選框和隱藏型別等輸入不在該串列中,因此它們不適用。當您有第二個輸入時,<input id="itemid" type="hidden" />您明確地將型別設定為隱藏,因此它不會阻止提交。洗掉您所擁有的型別<input id="itemid" /> 確實會停止隱式提交,因為輸入的默認型別是text,它在該串列中,因此它會停止隱式提交。同樣,當您將輸入切換到<input id="itemid" hidden />型別為 stilltext時,它也會停止隱式提交。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/425167.html
