angular - 我们如何在 Angular 前端进行密码确认?
问题描述
我们如何在 Angular 前端进行密码确认?我在 html 中看到一些像这样的角度函数:
<form #signUpForm="ngForm" (ngSubmit)="signUpForm.valid && onSubmit(signUpForm)">
<input type="text" #username="ngModel" [(ngModel)]="userService.selectedUser.username" name="username" placeholder="Full Name"
required [ngClass]="{'invalid-textbox' :signUpForm.submitted && !username.valid }">
<div *ngIf="signUpForm.submitted && !username.valid">
<label class="validation-message">This field is required.</label>
</div>
<input type="password" #password="ngModel" [(ngModel)]="userService.selectedUser.password" name="password" placeholder="Password"
minlength="4" required [ngClass]="{'invalid-textbox' :signUpForm.submitted && !password.valid }">
<div *ngIf="signUpForm.submitted && password.errors">
<label *ngIf="password.errors.required" class="validation-message">This field is required.</label>
<label *ngIf="password.errors.minlength" class="validation-message">Enter atleast 4 characters.</label>
</div>
<input type="password" #confirmPassword="ngModel" [(ngModel)]="userService.selectedUser.confirmPassword" name="confirmPassword" placeholder="confirmPassword"
required [ngClass]="{'invalid-textbox' :signUpForm.submitted && !confirmPassword.valid }">
<div *ngIf="signUpForm.submitted && confirmPassword.errors">
<label *ngIf="confirmPassword.errors.required" class="validation-message">This field is required.</label>
<label *ngIf="???" class="validation-message">password not match</label>
</div>
<input type="submit" value="Sign Up">
</form>
所以我期待还有一个类似密码确认的功能来验证你的确认密码是真还是假
解决方案
您可以使用内置比较功能的 rxwebvalidator
npm i @rxweb/reactive-form-validators
这是一个工作示例
https://stackblitz.com/edit/rxweb-reactive-form-validator-angular-4zdeux
或者,您可以编写自己的代码来测试密码和确认密码是否相同
<form #signUpForm="ngForm" (ngSubmit)="signUpForm.valid && onSubmit(signUpForm)">
<input type="text" #username="ngModel" [(ngModel)]="userService.selectedUser.username" name="username" placeholder="Full Name"
required [ngClass]="{'invalid-textbox' :signUpForm.submitted && !username.valid }">
<div *ngIf="signUpForm.submitted && !username.valid">
<label class="validation-message">This field is required.</label>
</div>
<input type="password" #password="ngModel" [(ngModel)]="userService.selectedUser.password" name="password" placeholder="Password"
minlength="4" required [ngClass]="{'invalid-textbox' :signUpForm.submitted && !password.valid }">
<div *ngIf="signUpForm.submitted && password.errors">
<label *ngIf="password.errors.required" class="validation-message">This field is required.</label>
<label *ngIf="password.errors.minlength" class="validation-message">Enter atleast 4 characters.</label>
</div>
<input type="password" #confirmPassword="ngModel" [(ngModel)]="userService.selectedUser.confirmPassword" name="confirmPassword" placeholder="Password"
minlength="4" required [ngClass]="{'invalid-textbox' :signUpForm.submitted && !password.valid }">
<div *ngIf="signUpForm.submitted">
<label *ngIf="userService.selectedUser.password != userService.selectedUser.confirmPassword" class="validation-message">Enter atleast 4 characters.</label>
</div>
<input type="submit" value="Sign Up">
</form>
推荐阅读
- r - grep 文本并放入数据框中
- ansible - 如何使用 Ad-hoc 命令从主机复制到控制机器?
- git - 如何从 GIT 恢复旧的拉取请求
- python - 列表值分配列表不正确
- javascript - 在asp.net中检索动态生成的复选框的Id属性
- vb.net - 通过单击 DevExpress TreeList 控件的标题停止检查复选框
- c# - 使用 .NET Core 2.2,目标进程退出但未引发 CoreCLR 启动事件错误
- c# - react-native ethers.js createwallet com.facebook.react.bridge.ReadableNativeMap 无法转换为 java.lang.String
- angular - 子组件传递参数给父组件
- sql - 数据库和sql文件之间的EF6 Schema比较?