AngularJS验证输入不等于零

时间:2015-06-02 18:29:04

标签: html angularjs validation input

从开始我开始特别是在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>

我应该如何验证它。此外,按钮似乎在页面加载时无法禁用。如何管理?

2 个答案:

答案 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开始它应该至少有一个非零值后跟它