使用angularjs验证文本框中的电子邮件

Validating email in the textbox using angularjs

本文关键字:电子邮件 文本 angularjs 验证 使用      更新时间:2023-09-26

我在表单中有两个文本框和一个提交按钮。一个以名字为输入,另一个以电子邮件为输入。我正在尝试使用angularjs来验证表单。对于名字字段,我应用

<div ng-class="{ 'has-error' : creatProspectSubmit && prospectCreate.FirstName.$error.required }"

这非常有效,当文本框中没有名字时,它会突出显示文本框。我在文本框中添加的另一个验证是

<input type="text" name="FirstName" ng-model="FirstName" ng-required="true">

因此,当我点击提交时,文本框会高亮显示,表单不会被提交。

电子邮件字段有不同的验证。

<div ng-class="{ 'has-error' : creatProspectSubmit && prospectCreate.Email.$error.required || EmailValidate || prospectCreate.Email.$error.email}">

因此,这很好,如果满足上述条件,它会突出显示文本框。其他验证是

<input type="email" name="Email" ng-model="Email" ng-required="true">

这里的问题是,如果电子邮件地址错误,它会突出显示文本框,但当我点击提交时,它会接受该值,可能是因为满足ng required="true"。如何在不在提交按钮中写入任何代码的情况下阻止表单提交。

我尝试在文本框中添加以下代码,但它在电子邮件的文本框中消失了。

ng-if = "creatProspectSubmit && prospectCreate.Email.$error.required || EmailValidate || prospectCreate.Email.$error.email"

我从两天开始就在努力。我不想在提交按钮上写任何代码。所有的验证都应该在文本框中完成。如有任何帮助,我们将不胜感激。

也许您可以将布尔验证变量添加到您的范围中,这样你就可以在提交按钮上添加ng-disable='!input1valid||!input2valid'这样,您就可以更好地控制何时提交