AngularJS - 检查类型为 "number" 的输入是否有值,0 表示有效值



我正在努力让AngularJS正常工作,我正在尝试实现一个小东西。

我有一个类型 number 的输入(这可能会导致问题(,它绑定到控制器中的一个变量,如果此输入为空,我需要禁用一个按钮。

这是我的输入和按钮的代码:

<input type="number" min="0" max="20" ng-model="student.mark">
<button ng-disabled="!student">Send</button>

如果字段为空,我尝试了几种解决方案来禁用我的按钮,但如果它的值为 0,请启用它:

<button ng-disabled="!student || !student.mark">Send</button>
<button ng-disabled="!student || !angular.isNumber(student.mark)">Send</button>
<button ng-disabled="!student || student.mark == ''">Send</button>
<button ng-disabled="!student || student.mark === ''">Send</button>

这些似乎都不起作用。如果我的输入中有任何数字,它将正常工作,但是如果我的值为"0",则该按钮将被禁用,或者如果我输入有效值然后删除它,该按钮将保持启用状态。

让我认为它应该起作用的是,如果我使用 {{ student.mark }} 显示值,值0确实会显示为"0",空输入将显示为空。

谢谢。

注意:0 被视为假。

在控制器中定义

 $scope.student.mark = null;

使用条件

 ng-disabled="student.mark == null && student.mark < 0"

我建议你为此使用表单,如下所示:

<form name="formName" ng-submit="someMethod(student)" autocomplete="off" 
novalidate>
<input type="number" min="0" max="20"
    ng-model="student.mark" placeholder="e.g. 12"
    ng-required="true" /> 
<button type="submit" value="Send" ng-disabled="formName.$invalid || <something else here>" />
</form>

我尝试了更多的事情,并实际测试了值是否null做到了:

<button ng-disabled="!student || student.mark === null">Send</button>

最新更新