forms - reactivos - ¿Cómo puedo condicionalmente requerir entradas de formulario con AngularJS?
validar formulario angular 5 (4)
Supongamos que estamos construyendo una aplicación de libreta de direcciones (ejemplo ideado) con AngularJS.
Tenemos un formulario para contactos que tiene entradas para correo electrónico y número de teléfono, y queremos requerir una u otra , pero no ambas : solo queremos que la entrada de email
sea requerida si la entrada del phone
está vacía o no es válida, y viceversa .
Angular tiene una directiva required
, pero no queda claro en la documentación cómo usarla en este caso. Entonces, ¿cómo podemos requerir condicionalmente un campo de formulario? Escribir una directiva personalizada?
No hay necesidad de escribir una directiva personalizada. La documentación de Angular es buena pero no está completa. De hecho , hay una directiva llamada ngRequired
, que toma una expresión Angular.
<input type=''email''
name=''email''
ng-model=''contact.email''
placeholder=''[email protected]''
ng-required=''!contact.phone'' />
<input type=''text''
ng-model=''contact.phone''
placeholder=''(xxx) xxx-xxxx''
ng-required=''!contact.email'' />
Aquí hay un ejemplo más completo: http://jsfiddle.net/uptnx/1/
Para angular2
<input type=''email''
[(ngModel)]=''contact.email''
[required]=''!contact.phone'' >
Si quieres poner un input requerido si otro está escrito:
<input type=''text''
name=''name''
ng-model=''person.name''/>
<input type=''text''
ng-model=''person.lastname''
ng-required=''person.name'' />
Saludos.
Simple puedes usar validación angular como:
<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'' />
Ahora puede completar el valor en un solo campo de texto. O bien puede rellenar nombre o apellido. De esta manera, puede utilizar el relleno obligatorio condicional en AngularJs.