如果我在<form>
元素中有input
,我可以簡單地將novalidate
屬性添加到表單以禁用HTML5驗證工具提示。然而,我的輸入不是一個表單元素(我使用angularJS,我使用ng-form
指令)。如何爲輸入元素禁用HTML5驗證工具提示
我可以收聽invalid事件並阻止提交驗證,但我無法阻止驗證工具提示。
下面是一個簡單的JsFiddle來顯示問題。
如果我在<form>
元素中有input
,我可以簡單地將novalidate
屬性添加到表單以禁用HTML5驗證工具提示。然而,我的輸入不是一個表單元素(我使用angularJS,我使用ng-form
指令)。如何爲輸入元素禁用HTML5驗證工具提示
我可以收聽invalid事件並阻止提交驗證,但我無法阻止驗證工具提示。
下面是一個簡單的JsFiddle來顯示問題。
在html5
你有輸入元素兩種選擇:
<form>
容器內。form
屬性添加到輸入中,該值應該是輸入相關形式的id
。使用選項#2你可以只添加一個空的形式在您的DOM的novalidate
的地方,並輸入附加到形式:
<form novalidate>
<p>Input in form with novalidate. This one is fine.</p>
<input type="email" required>
</form>
<p>Input without form. How to disable validation tooltips? (hover over input to see validation tooltip)</p>
<input type="email" required form="novalidatedform">
<form id="novalidatedform" novalidate />
關於input
更多信息元素在MDN website。
令人驚訝的是,在輸入元素中添加'form'屬性在angularJS框架中完美工作。正如我在問題中提到的那樣,我正在使用'ng-form'指令以角度方式處理驗證。向輸入添加表單屬性並不會中斷角度驗證,但會阻止HTML5驗證。經過Chrome,Firefox,IE 10+測試。非常感謝。 – Arashsoft
「角度的方法」是使用'''
儘管接受的答案完成了這項工作,但另一種方式是通過簡單地向輸入元素添加一個'title'屬性,驗證信息將被title屬性中的內容覆蓋。
您可以在title屬性添加一些有意義的文本,
<input type="email" title="Your Email">
P.S在HTML5中,標題屬性可以被任何HTML元素不像在HTML 4.01中。
如果你不關心字段驗證,爲什麼你需要'required'屬性? –
@ScottMarcus,我用自定義工具提示進行角度驗證。 – Arashsoft