单击angularjs中的提交表单时如何删除“请填写此字段”弹出但其他验证应该有效

Posted

技术标签:

【中文标题】单击angularjs中的提交表单时如何删除“请填写此字段”弹出但其他验证应该有效【英文标题】:how to remove "please fill out this field" pop up when click on submit form in angularjs but other validations should work 【发布时间】:2016-01-06 00:32:22 【问题描述】:

我想删除“请填写此字段”弹出窗口作为验证和声明的正常验证应该显示。

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>

【问题讨论】:

在点击发布按钮之前,请花点时间查看问题预览中的格式,这样可以更轻松地为您提供帮助 novalidate 添加到form 【参考方案1】:

novalidate 属性添加到您的form 以禁用浏览器默认验证

前任

<form role="form" novalidate id="createForm" v name="createForm"  ng-submit="createAdminGroup(adminGroupData)">

Find more here

【讨论】:

【参考方案2】:

在提交按钮中添加 formnovalidate 属性:

例子:

<button name="submit" type="submit" formnovalidate class="btn btn-success">Save</button>

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

可以看W3C规范here

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

【讨论】:

【参考方案3】:

我刚试过,效果很好:

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

我在两个单引号之间添加了一个空格。

由于我在输入字段上添加了引导工具提示并且是必需的,因此无效的输入会成为焦点并显示工具提示值。

这比我想象的要简单。

【讨论】:

【参考方案4】:

title=""


即使输入超出表单,工具提示也会出现,在这种情况下,novalidate 不起作用。

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

&lt;input type="text" required title="" /&gt;

【讨论】:

以上是关于单击angularjs中的提交表单时如何删除“请填写此字段”弹出但其他验证应该有效的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS:表单内的所有按钮触发提交?

单击另一个表单中的按钮提交时如何在c#中重新加载表单?

使用AngularJS单击添加按钮时如何在表中插入新数据行

单击侧边栏时如何提交表单

使用 Angular JS 在提交时隐藏表单

单击表单中的按钮会导致页面刷新