Angularjs 如何对不同的ng repeat字段应用不同的验证,并在ng repeat中自动计算其总数
示例代码:Angularjs 如何对不同的ng repeat字段应用不同的验证,并在ng repeat中自动计算其总数,angularjs,validation,angularjs-ng-repeat,Angularjs,Validation,Angularjs Ng Repeat,示例代码: <table> <tr> <td>Class</td> <td> Input one </td> <td> Input two </td> <td> Total </td> </tr> <tr ng-repeat= "x in records">
<table>
<tr>
<td>Class</td>
<td> Input one </td>
<td> Input two </td>
<td> Total </td>
</tr>
<tr ng-repeat= "x in records">
<td>My {{x.class}} </td>
<td><input type="tel" ng-value="x.tel" ng-model="telephone"></td>
<td><input type="tel" ng-value="x.inone" ng-model="inone"></td>
<td><input type="tel" ng-value="x.intwo" ng-model="intwo"></td>
<td><input type="tel" ng-value="x.total" ng-model="total"></td>
</tr>
<tr>
<td colspan="5" class="text-center"> <input type="button" value="Save" ng-click="mydata(records)"> </td>
</tr>
</table>
提交后,动态添加用户填写的字段
最初用户只能看到
1.使用3个空白输入字段(输入一个、输入两个和总计)和一个空白电话字段对零件进行分类
我想要什么
1.应验证用户的电话字段
A. Personal class which allow only 6 digits, and
B. for Social class it should allow 10 digits.
沿着这条线做些什么
<td ng-if="x.class=='Personnal'"><input type="tel" ng-maxlength="5" ng-model="x.inone" ng-change="x.total=x.inone+x.intwo"></td>
<td ng-if="x.class=='Social'"><input type="tel" ng-maxlength="5" ng-model="x.inone"></td>
<td ng-if="x.class=='Personnal'"><input type="tel" ng-minlength="11" ng-maxlength="15" ng-model="x.intwo" ng-change="x.total=x.inone+x.intwo"></td>
<td ng-if="x.class=='Social'"><input type="tel" ng-minlength="16" ng-maxlength="20" ng-model="intwo"></td>
总而言之,
- ng值无效,请将数据直接绑定到x。[value]
- 使用ng if在不同类之间切换
- 使用ng minlength/ng maxlength进行验证
- 每次使用ng change重新计算总计时,您可能希望在总计字段中添加只读/禁用标志。如果total不是字符串串联,请使用将在控制器中调用的函数进行适当转换并求和
- 这条路线上的一些东西呢
<td ng-if="x.class=='Personnal'"><input type="tel" ng-maxlength="5" ng-model="x.inone" ng-change="x.total=x.inone+x.intwo"></td>
<td ng-if="x.class=='Social'"><input type="tel" ng-maxlength="5" ng-model="x.inone"></td>
<td ng-if="x.class=='Personnal'"><input type="tel" ng-minlength="11" ng-maxlength="15" ng-model="x.intwo" ng-change="x.total=x.inone+x.intwo"></td>
<td ng-if="x.class=='Social'"><input type="tel" ng-minlength="16" ng-maxlength="20" ng-model="intwo"></td>
总而言之,
- ng值无效,请将数据直接绑定到x。[value]
- 使用ng if在不同类之间切换
- 使用ng minlength/ng maxlength进行验证
- 每次使用ng change重新计算总计时,您可能希望在总计字段中添加只读/禁用标志。如果total不是字符串串联,请使用将在控制器中调用的函数进行适当转换并求和
ng repeat
没有任何意义。尽管如此,这些需求本身并没有意义。当你说输入值的“范围”时,不清楚你的意思是什么;您是说在第一个字段中,您想要6个数字,但希望所有6个数字都是0-5?你怎么能有一个10位数的字段,范围是11-15?不幸的是,这个问题相当令人困惑。如果您只有两行,并且每行都有不同的要求,那么使用ng repeat
没有任何意义。尽管如此,这些需求本身并没有意义。当你说输入值的“范围”时,不清楚你的意思是什么;您是说在第一个字段中,您想要6个数字,但希望所有6个数字都是0-5?你怎么能有一个10位数的字段,范围是11-15?