html5的input的required使用中遇到的問題及解決方法

form提交時隱藏input發(fā)生的錯誤
問題描述
在form表單提交的時候,有些input標(biāo)簽被隱藏,表單驗證過程中會出現(xiàn)An invalid form control with name='' is not focusable
的錯誤
雖然我遇到的問題是我的input標(biāo)簽根本沒有required屬性,但是在該標(biāo)簽隱藏之前,(我的是使用tab欄切換)我輸入了錯誤的格式,再隱藏,這時候他其實是錯誤的,會被form表單同樣去驗證,但是由于它被隱藏,瀏覽器獲取不到焦點就會報錯。
解決方法
隱藏之前將該input的value值設(shè)置為空即可.我的input上面沒有使用required屬性。
如果input含有display:none和required屬性,也會產(chǎn)生該錯誤
產(chǎn)生原因
Chrome希望專注于需要但仍為空的控件,以便可以彈出消息“請?zhí)顚懘俗侄?rdquo;。但是,如果控件在Chrome想要彈出消息的時候隱藏,即在提交表單時,Chrome無法關(guān)注該控件,因為它是隱藏的,因此表單不會提交。
解決方法如下
1.隱藏時,將required屬性刪除
selector.removeAttribute("required")
2.沒有使用required的話,或許是由于button按鈕,類型未設(shè)置造成。設(shè)置<button type="button">
3.form表單不驗證,即添加novalidate屬性。(不是最終解決辦法)<form novalidate></form>
4.既然是由于使用了display:none造成,同樣的visibility: hidden 也會造成問題,那就不使用。通過可以設(shè)置css樣式opacity: 0;
5.禁用此表單控件。 disabled 這是因為通常如果你隱藏了表單控件,那是因為你不關(guān)心它的價值。所以這個表單控件名稱值對在提交表單時不會被發(fā)送。
$("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. });
總結(jié)
以上所述是小編給大家介紹的h5的input的required使用中遇到的問題及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
- 這篇文章主要介紹了HTML5表單驗證特性的一些知識點,本文通過實例代碼截圖的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-10
- 很多朋友進行表單驗證的時候,都是自己用jquery或者js手工驗證,或者用一下jquery插件進行驗證。感覺html5自帶驗證不是很好用,下面小編給大家分享使用純html5編寫的一個表2017-09-12
- 這篇文章主要介紹了HTML5 表單驗證失敗的提示語問題的相關(guān)資料,需要的朋友可以參考下2017-07-13
- 這篇文章主要介紹了使用HTML5和CSS3表單驗證功能,需要的朋友可以參考下2017-05-05
- 在HTML5 中,在增加了大量的表單元素與屬性的同時,也增加了大量在提交時對表單與表單內(nèi)新增元素進行內(nèi)容有效性驗證的功能,接下來我們來講一下自動驗證,需要的朋友參考2017-01-11
HTML5利用約束驗證API來檢查表單的輸入數(shù)據(jù)的代碼實例
這篇文章不會去討論簡單的input type,本文想把重點放在HTML5表單驗證機制上。主要介紹是HTML5是如何利用約束驗證API來檢查表單的輸入數(shù)據(jù)的,當(dāng)然,本文會涉及到很多其它2016-12-20html5中valid、invalid、required的定義
HTML5的出現(xiàn)為我們提供一些屬性,不用編寫js和正則即可解決這個檢驗表單內(nèi)容,下面為大家介紹下valid、invalid、required的定義2014-02-21wordpress添加Html5的表單驗證required方法小結(jié)
這篇文章主要介紹了wordpress添加Html5的表單驗證required方法小結(jié),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參2020-08-18