我如何有条件地要求AngularJS的表单input?
假设我们正在用AngularJS构build一个地址簿应用程序(人为的例子)。
我们有一个联系人表单,用于input电子邮件和电话号码,我们希望要求一个或另一个 ,但不是两个 :我们只希望email
input是必需的,如果phone
input是空的或无效的,反之亦然。
Angular有一个required
指令,但在这种情况下,文档中不清楚如何使用它。 那么我们如何有条件地要求一个表单域呢? 写一个自定义指令?
没有必要写一个自定义指令。 Angular的文档很好,但不完整。 事实上 ,有一个叫做ngRequired
的指令,需要一个Angularexpression式。
<input type='email' name='email' ng-model='contact.email' placeholder='your@email.com' ng-required='!contact.phone' /> <input type='text' ng-model='contact.phone' placeholder='(xxx) xxx-xxxx' ng-required='!contact.email' />
这是一个更完整的例子: http : //jsfiddle.net/uptnx/1/
如果你想要input一个需要的input,如果其他写入:
<input type='text' name='name' ng-model='person.name'/> <input type='text' ng-model='person.lastname' ng-required='person.name' />
问候。
简单的你可以使用angular度validation,如:
<input type='text' name='name' ng-model='person.name' ng-required='!person.lastname'/> <input type='text' name='lastname' ng-model='person.lastname' ng-required='!person.name' />
您现在可以只填写一个文本字段中的值。 你可以填写姓名或姓氏。 通过这种方式,您可以在AngularJs中使用条件需要的填充。