从开始我开始特别是在Angular中进行编程。我想验证输入不允许数字0。这是我的代码:
<form ng-app="linearEquation" ng-controller="calcCtrl"
name="calculator" ng-init="notValid=true" novalidate>
<div>
<h3 class="field">Kalkulator oblicza wartość równania
<var>ax = b</var>.</h3>
<div class="field">
<p>
Podaj wartość a:<br/>
<input type="number" name="fieldA" ng-model="a" required integer />
<span class="error" ng-show="calculator.fieldA.$invalid"/>
<span ng-show="calculator.fieldA.$error.number">
Proszę podać liczbę</span><br/>
</p>
<p>
Podaj wartość b:<br/>
<input type="number" name="fieldB" ng-model="b" required integer />
<span class="error" ng-show="calculator.fieldB.$invalid"/>
<span ng-show="calculator.fieldB.$error.number">
Proszę podać liczbę</span>
</p>
<p>
<button type="submit"
ng-disabled="
calculator.fieldA.$dirty &&
calculator.fieldA.$invalid ||
calculator.fieldB.$dirty &&
calculator.fieldB.$invalid"
ng-click="count()">
Oblicz
</button>
</p>
</div>
<p class="field" id="result">x = {{c.toFixed(2)}}</p>
</div>
我应该如何验证它。此外,按钮似乎在页面加载时无法禁用。如何管理?
答案 0 :(得分:1)
如果要在启动时禁用该按钮,则应删除$dirty
。最好使用ng-pattern
指令验证数字1-9并省略“0”。您的input
应该是这样的:
<input type="number" name="fieldA" ng-model="a" required ng-pattern="/[1-9]/" />
答案 1 :(得分:0)
我在这里讲述了两个案例 首先,在字段0中根本不应该被允许,例如0是无效的,10也是无效的550也是无效的 在那种情况下使用
<input type="number" name="fieldA" ng-model="a" required ng-pattern="/[1-9]*/" />
第二种情况零零可以是数字的一部分但不应该允许值0例如0无效但01有效,501有效且0000在这种情况下无效
<input type="number" name="fieldA" ng-model="a" required ng-pattern="/([1-9][0-9]*||[0]*[1-9]+[0-9]*)/" />
根据正则表达式,如果它以1-9开头,那么它之后可以有任何数字,如果从0开始它应该至少有一个非零值后跟它