Angular中下拉列表为空时如何禁用按钮

时间:2019-04-26 21:34:58

标签: angular typescript

我需要保持按钮处于禁用状态,直到用户从下拉菜单中选择一个选项。一旦执行此操作,该按钮就会启用。这就是我现在所拥有的...

<select [(ngModel)]="rejectionReason">
    <option [ngValue]="undefined" selected disabled>Select</option>
    <option>One</option>
    <option>Two</option>
    <option>Three</option>
</select> 
<button type="button" [disabled]="rejectionReason.length > 0">Submit</button>

我也尝试过

[disabled]="rejectionReason === ''"

没有任何运气。对Angular 2+中执行此操作的正确方法有任何想法吗?

3 个答案:

答案 0 :(得分:0)

问题是您没有为rejectionReason分配任何值,而是将选定的值分配给rejectionReason,您需要在{{ 1}}。现在,有两种方法可以实现。如果您想要预定义/硬编码的值,则可以简单地使用。

value

否则,如果要从变量中提供选项,则假设option在组件类中定义,并且可以为<option value="one">One</option>

exampleVarString

您可以像上面一样使用stringified属性,它仅支持<option [value]="exampleVarString">One</option> 。或者,您可以使用[value]

对于您的情况,我也使用字符串作为选项。

strings

Here是工作中的佼佼者,我还列举了[ngValue]="exampleVarObject"的一个例子。

答案 1 :(得分:-1)

您的选项没有[value]。因此rejectReason.length始终为零。因此,请尝试以下操作:

myDT[, unlist(strsplit(strformat,':')):=tstrsplit(content,':'), by=strformat]
# Error in strsplit(strformat, ":") : object 'strformat' not found

答案 2 :(得分:-1)

如果问题在于按钮从未启用,那是因为为了不设置禁用,该属性的值必须为null,而不是false。...

rejectionReason.length > 0 || null