2016-06-23 1 views
-1

Je souhaite valider deux formulaires. Le formulaire PRINCIPAL est pour e.q. pour Société modèle et la deuxième forme est pour CompanyAddress modèle.Validation de forme angulaire - formulaire sous forme

CompanyAddressForm est à l'intérieur CompanyForm. Je rencontre des problèmes lors de la validation de CompanyForm. Cela dépend de la validation CompanyAddressForm et je ne le veux pas.

// Main form 
<form ...> 
    <input ... required /> 
    // MODAL 
    <button submit ... ng-disabled=MainForm.$invalid> 
</form> 

// Second form is in modal 
<form. ..> 
    <input ... /> 
    <button submit=SecondForm.$invalid /> 
</form> 

// Et il y a un problème.

+0

Aviez-vous un nom sur les 2 formes comme ceci: '< form name = "MainForm"> 'et' '? – AlainIb

+0

Oui. Et dans la validation des entrées même. – Nerf

Répondre

0

Selon la spécification html5 (et la spécification xhtml), il ne peut pas avoir une autre forme dans une forme:

modèle de contenu: contenu du flux, mais sans descendants d'éléments de forme. Source: https://www.w3.org/TR/html5/forms.html#the-form-element

donc je fortement vous suggère de restructurer vos formes et ne pas les mettre dans l'autre, que le comportement peut varier (entre les différents navigateurs et au fil du temps) (!).

+0

Ok, merci. Je pensais que ce n'est pas autorisé. Alors, comment puis-je faire cette validation des entrées dans MODAL qui ne réagit pas avec la forme principale? – Nerf

+0

La solution ne sera pas parfaite lorsque vous avez des éléments de formulaire en dehors du formulaire, car il existe différentes manières de soumettre un formulaire, pas simplement en cliquant sur le bouton de soumission (par exemple "ctrl-enter" dans certains navigateurs). Si possible, vous devriez éviter ce cas. Si vous avez vraiment besoin de le faire de cette façon, vous devez déclencher la validation manuellement comme ceci: 'angular.forEach (, function (field) {field. $ SetDirty ();}); ' – MattDiMu

0

gérer les deux formes en utilisant différentes classes ou séparement id

Vous ne pouvez pas avoir une forme dans une autre ... c'est une mauvaise programmation prat

+0

Mais comment je peux faire ça? J'ai mis l'identification différente, le nom pour des entrées dans le "deuxième" forme et toujours le mainForm dit que ces inpust ne sont pas valides. – Nerf

+1

Vous pouvez faire une chose, vous pouvez définir deux formes différentes et définir des contrôleurs différents pour cela, donc vous n'avez pas besoin de définir des formes à l'intérieur d'un autre formulaire, c'est une mauvaise pratique. Manipulez les formulaires séparément. – Deepanjan