您好,登錄后才能下訂單哦!
這篇文章主要講解了“html5中input的required使用報錯怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“html5中input的required使用報錯怎么解決”吧!
問題描述
在form表單提交的時候,有些input標簽被隱藏,表單驗證過程中會出現An invalid form control with name='' is not focusable
的錯誤
雖然我遇到的問題是我的input標簽根本沒有required屬性,但是在該標簽隱藏之前,(我的是使用tab欄切換)我輸入了錯誤的格式,再隱藏,這時候他其實是錯誤的,會被form表單同樣去驗證,但是由于它被隱藏,瀏覽器獲取不到焦點就會報錯。
解決方法
隱藏之前將該input的value值設置為空即可.我的input上面沒有使用required屬性。
如果input含有display:none和required屬性,也會產生該錯誤
產生原因
Chrome希望專注于需要但仍為空的控件,以便可以彈出消息“請填寫此字段”。但是,如果控件在Chrome想要彈出消息的時候隱藏,即在提交表單時,Chrome無法關注該控件,因為它是隱藏的,因此表單不會提交。
解決方法如下
1.隱藏時,將required屬性刪除
selector.removeAttribute("required")
2.沒有使用required的話,或許是由于button按鈕,類型未設置造成。設置<button type="button">
3.form表單不驗證,即添加novalidate屬性。(不是最終解決辦法)<form novalidate></form>
4.既然是由于使用了display:none造成,同樣的visibility: hidden 也會造成問題,那就不使用。通過可以設置css樣式opacity: 0;
5.禁用此表單控件。 disabled 這是因為通常如果你隱藏了表單控件,那是因為你不關心它的價值。所以這個表單控件名稱值對在提交表單時不會被發送。
$("body").on("submit", ".myForm", function(evt) { // Disable things that we don't want to validate. $(["input:hidden, textarea:hidden, select:hidden"]).attr("disabled", true); // If HTML5 Validation is available let it run. Otherwise prevent default. if (this.el.checkValidity && !this.el.checkValidity()) { // Re-enable things that we previously disabled. $(["input:hidden, textarea:hidden, select:hidden"]).attr("disabled", false); return true; } evt.preventDefault(); // Re-enable things that we previously disabled. $(["input:hidden, textarea:hidden, select:hidden"]).attr("disabled", false); // Whatever other form processing stuff goes here. });
感謝各位的閱讀,以上就是“html5中input的required使用報錯怎么解決”的內容了,經過本文的學習后,相信大家對html5中input的required使用報錯怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。