【发布时间】:2019-07-01 10:30:03
【问题描述】:
我有一个国家/地区的下拉列表
<select #countryInput name="country" [(ngModel)]="room.countryId" required>
<option [selected] [value]="undefined">Select Country</option>
<option *ngFor="let c of countries" [value]="c.id">{{c.name}}</option>
</select>
为了“选择国家”选项,需要设置 [value]="undefined" 否则它不会显示为默认选择,而是显示为空选择。
即使标记的字段是必填字段,但在表单提交时不会显示为
<option value="">Select Country</option>
这是 html 5 中的默认行为:
作为处理表单提交验证的一种解决方法,但这次首先验证必填字段,最后验证国家/地区字段。
if (this.room.country == undefined) {
alert('select country ');
return false;
}
对于带有 [value]="undefined" 的字段并显示“请先选择一个项目”警报的解决方案是什么?
查看 Daniel's 的 forked fiddle
【问题讨论】:
-
我不明白为什么需要将值设置为
undefined? -
这意味着,如果你想在选择元素中显示为默认选项,选项必须具有值“未定义”
-
您是在谈论 Angular 引入的任何特定要求吗?因为在 HTML 本身中,并没有这样的要求。
-
抱歉造成混淆,尝试用更新的问题标题澄清
-
你真的应该让 Angular 为你处理验证。在我提出的答案中,您的
select表单控件将无效,只要它保持无效,您就可以显示错误消息。请记住,null !== undefined。null是一个值,undefined不是。
标签: angular angular2-form-validation