如何在AngularJS中删除“请填写此字段”弹出窗口,但其他验证仍然有效?

14
我想要移除“请填写此字段”的弹窗验证,而正常的已声明验证应该显示。
Html:
<div class="panel-body">
    <form role="form" id="createForm" v name="createForm"  ng-submit="createAdminGroup(adminGroupData)">
        <div class="form-group" ng-class="{ 'has-error' : createForm.firstName.$invalid && !createForm.firstName.$pristine}">
            <label class="label1">First Name</label>
            <input name="firstName" id="firstName" class="form-control" placeholder="First Name" name="firstName"  type="text" ng-model="adminGroupData.firstName  " required/>
         <span style="color:red" ng-show="createForm.firstName.$invalid  && !createForm.firstName.$pristine">Please enter first name</span>
        </div>

        <div class="form-group">
            <label class="label1">Last Name </label>
            <input name="lastName" id="lastName" class="form-control" placeholder="Last Name" name="lastNmae"  type="text" ng-model="adminGroupData.lastName" />
        </div>

        <div class="form-group">
            <label class="label1"> Email Id </label>
            <input type="email" name="email" id="email" class="form-control"  placeholder="email@xyz.com" value=""ng-model="adminGroupData.email"/>
        </div>
        <div class="form-group">
            <label class="label1"> Password </label>
            <input name="password" id="password" class="form-control" placeholder="password"  value=""  ng-model="adminGroupData.password" />
        </div>

        <button name="submit" type="submit" class="btn btn-success" id="" ng-disabled="userForm.$invalid">Save</button>
        <button class="btn btn-default" id="cancel" type="button" onclick='handleCancelCreateAdmin()'> Back </button>

        </form>
</div>

2
在点击发布按钮之前,请花时间查看您问题的预览格式,这将使我们更容易地帮助您。 - LionC
3
form 中添加 novalidate - Guruprasad J Rao
4个回答

25
< p >在您的form中添加novalidate属性,以禁用浏览器默认验证。< /p > < p >例如:< /p >
<form role="form" novalidate id="createForm" v name="createForm"  ng-submit="createAdminGroup(adminGroupData)">

在此处查找更多信息


8
在提交按钮中添加属性 formnovalidate
示例:
<button name="submit" type="submit" formnovalidate class="btn btn-success">Save</button>

这将仅禁用浏览器表单验证。您仍然可以通过 AngularJS 代码进行验证。

您可以在此处查看 W3C 规范(点击此处)

我几天前也遇到了同样的问题,这就是我解决问题的方法。


3
我刚刚尝试了这个,它有效:

oninvalid="this.setCustomValidity(' ')" oninput="this.setCustomValidity('')" >

我在两个单引号之间添加了一个空格。
因为我在我的输入字段上添加了bootstrap提示和必填项,所以无效输入会聚焦并显示提示值。
比我想象的简单。

2

title=""


即使输入框不在表单内,工具提示也会出现。这种情况下,novalidate 选项无法解决此问题。

一种解决方案是删除 required,但如果你的代码库很大,那么一个快速的替代方法是添加 title=""

<input type="text" required title="" />


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接