2016-12-10 1 views
1

J'ai écrit ce code mais cela ne fonctionne pas lorsque je place mon application à l'intérieur du tag <form name="myForm">.... Que dois-je faire pour que ça marche! (Chaque fois que je place myForm à l'intérieur de ng-app cela fonctionne, mais mon application doit être à l'intérieur de <form>)Comment faire pour que la validation de angular.js fonctionne à l'intérieur d'une balise <form>

<form name="myForm"> 
    <div ng-app ng-init="myInput = 'ABC'"> 
     <input name="myInput" ng-model="myInput" required> 
     <h1>{{myForm.myInput.$valid}}</h1> 
    </div> 
</form> 

jsfiddle

+0

Avez-vous essayé 'myInput valid' de $.? – pwolaq

Répondre

1

Vous pouvez utiliser la directive ngForm (ici) afin de permettre aux services de validation en son sein:

Comme ceci:

<div ng-app="" ng-controller="validateCtrl" name="myForm" novalidate ng-form> 
0

Vous avez eu tag ng-app dans form tag. Donc c'est la raison form tag avec myForm ne se compile pas par angulaire et myForm ne serait pas disponible dans la portée angulaire.

Vous devez déplacer ng-app au top parent le plus, la plupart du temps étiquette html/body afin que vous assurer que tout a été compilé par & angulaire va rester à l'intérieur contexte angulaire.

<form ng-app name="myForm"> 
    <div ng-init="myInput = 'ABC'"> 
     <input name="myInput" ng-model="myInput" required> 
     <h1>{{myForm.myInput.$valid}}</h1> 
    </div> 
</form> 

Forked Fiddle

Ce ne est pas bonne idée de créer une application angulaire sans modules. Idéalement, le module & doit fournir ce module à l'intérieur de la directive ng-app. Je suppose que vous apprenez c'est pourquoi vous l'avez eu là.

+0

tnx monsieur, je sais mais je ne peux pas déplacer «ng-app» au plus haut parent ... J'ai besoin d'une autre solution ... –

+0

@Mohamadshiralizadeh OMG, je pensais que vous apprenez angulaire et c'est pourquoi vous avez créé l'application sans module .. Idéalement dans l'application d'entreprise, vous devriez rendre votre application modulaire .. –

+0

@Mohamadshiralizadeh puis-je savoir pourquoi vous ne voulez pas déplacer le 'ng-app' vers le haut .. –