gpt4 book ai didi

javascript - Angular.js 如何验证本例中的表单?

转载 作者:行者123 更新时间:2023-11-28 15:33:01 25 4
gpt4 key购买 nike

我正在查看此页面上的示例:http://www.w3schools.com/angular/tryit.asp?filename=try_ng_validate

<!DOCTYPE html>
<html>

<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
</head>

<body>
<h2>Validation Example</h2>

<form ng-app=""
ng-controller="validateCtrl"
name="myForm"
novalidate>

<p>Username:<br>
<input type="text"
name="user"
ng-model="user"
required>
<span style="color:red"
ng-show="myForm.user.$dirty && myForm.user.$invalid">
<span ng-show="myForm.user.$error.required">
Username is required.
</span>
</span>
</p>

<p>Email:<br>
<input type="email"
name="email"
ng-model="email"
required>
<span style="color:red"
ng-show="myForm.email.$dirty && myForm.email.$invalid">
<span ng-show="myForm.email.$error.required">
Email is required.
</span>
<span ng-show="myForm.email.$error.email">
Invalid email address.
</span>
</span>
</p>

<p>
<input type="submit"
ng-disabled="myForm.user.$dirty && myForm.user.$invalid ||
myForm.email.$dirty && myForm.email.$invalid">
</p>

</form>

<script>
function validateCtrl($scope) {
$scope.user = 'John Doe';
$scope.email = 'john.doe@gmail.com';
}
</script>

</body>
</html>

我不明白的是,似乎没有验证码。我特别不明白为什么以下行有效:

<span ng-show="myForm.email.$error.email">Invalid email address.</span>

但是,如果我放置类似的行来尝试假装用户名是电子邮件地址,它会忽略它。即以下内容不会检查用户名是否是电子邮件地址:

<p>Username:<br>
<input type="text" name="user" ng-model="user" required>
<span style="color:red" ng-show="myForm.user.$dirty && myForm.user.$invalid">
<span ng-show="myForm.user.$error.required">Username is required.</span>
<span ng-show="myForm.user.$error.email">Invalid email address.</span>
</span>
</p>

有人可以更好地解释一下吗?

最佳答案

那是因为您提交的电子邮件电子邮件类型,因此它会根据电子邮件格式进行验证。并且您的用户名只是提交的文本,因此 Angular 将仅针对文本输入进行验证,而不是针对电子邮件

这是一个简单的 demo

就你而言,电子邮件字段是必填字段,并且应该是电子邮件,

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

所以 Angular 将首先检查它是否为空,如果不是,它将检查该值是否是一个 email

但是在文本字段只是一个文本

所以 Angular 将仅检查文本框值是否为空或非空

关于javascript - Angular.js 如何验证本例中的表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26501375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com