angularjs 如何禁用输入元素的HTML验证提示< form>

w8biq8rn  于 2023-04-04  发布在  Angular
关注(0)|答案(3)|浏览(166)

我知道,如果我在<form>元素中有一个input,我可以简单地将novalidate属性添加到表单中以禁用HTML验证工具提示。但是,我的输入不在表单元素中(我使用AngularJS,我使用ng-form指令)。
我可以监听invalid事件并阻止提交验证,但不能阻止验证工具提示。
下面是一个简单的JSFiddle来说明这个问题。

i7uq4tfw

i7uq4tfw1#

虽然Dekel的答案可以完成这项工作,但另一种方法是简单地向input元素添加一个“title”属性,验证消息将被title属性中的内容覆盖。
您可以在title属性中添加一些有意义的文本,

<input type="email" title="Your Email">
dy1byipe

dy1byipe2#

在HTML中,输入元素有两个选项:
1.将它们放入<form>容器中。
1.将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 />

有关MDN websiteinput元素的更多信息。

1sbrub3j

1sbrub3j3#

您也可以使用此脚本

<script>
    document.getElementById( "inputId" ).addEventListener( "invalid",
        function( event ) {
            event.preventDefault();
        });
</script>

相关问题