html - Angular 2 - 下拉验证问题

标签 html angular validation dropdown

我试过很多方法:

Validation for select field angular 2

How to apply required validation to dropdown in angular 2

这有助于我在下拉列表中添加验证。但我有一个问题,验证运行正常,但是当我点击提交按钮时,如果下拉值是否有效,它会提交表单。如果下拉列表的值为“选择”,我不想提交我的表单。

这是我的 HTML 代码:

<form name="form" (ngSubmit)="f.form.valid && SaveSymbol()" #f="ngForm" novalidate>
       <div class="form-group" [ngClass]="{ 'has-error': f.submitted && !DisplayGroupID.valid && !manageSymbolViewModel.DisplayGroupID }"> 
          <label for="DisplayGroupID">Display Group</label>
          <select class="form-control" name="manageSymbolViewModel.DisplayGroupID" #DisplayGroupID id="manageSymbolViewModel.DisplayGroupID" [(ngModel)]="manageSymbolViewModel.DisplayGroupID" required>
             <option value="0" selected disabled>Select</option>
             <option *ngFor="let group of result.DisplayGroups" value={{group.DisplayGroupId}}>
                  {{group.DisplayGroup}}
              </option>
          </select>
          <div *ngIf="f.submitted && !DisplayGroupID.valid && !manageSymbolViewModel.DisplayGroupID" class="help-block">Display Group is required</div>
      </div>

 <div class="form-group">
      <button [disabled]="loading" type="submit" class="btn btn primary">Save</button>
       <a [routerLink]="['/login']" class="btn btn-link">Cancel</a>
 </div>
</form>

这是组件代码:

SaveSymbol() {
       this.manageSymbolService.Save(this.manageSymbolViewModel).subscribe(data => {
                    debugger;

                },
                    error => {
                        // this.alertService.error(error);
                        // this.loading = false;
                    });
            }
    }

最佳答案

第一并入选option你的select元素的值为 0 .所以它基本上已经在页面加载时设置了一个值。

尝试将其更改为:<option value="" selected disabled>Select</option>看看是否能解决您的问题。

关于html - Angular 2 - 下拉验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43840481/

相关文章:

angular - 如何使用 Apollo 和 Angular 创建单元测试

c# - 基于 bool 方法的自定义 MVC4 验证

javascript - 使用正则表达式强制 URL 字段不包含 "http://www."

Angular 4 forwardRef?

html - 悬停时延迟图像显示

html - 如何将站点名称和标题放在图像上

html - Bootstrap 独立导航图标栏/切换按钮

angular - Ionic 4/Angular 6 - 使用拦截器在 401/403 上重定向登录页面

asp.net-mvc - 在 asp.net mvc 中设置来自 Controller 的动态数据注释错误消息

python - 用于在 Python 中创建和验证 HTML 表单的包? - 用于 Google Appengine