Maison > interface Web > js tutoriel > Un moyen simple de gérer les boutons radio et les cases à cocher à l'aide d'AngularJS_AngularJS

Un moyen simple de gérer les boutons radio et les cases à cocher à l'aide d'AngularJS_AngularJS

WBOY
Libérer: 2016-05-16 15:53:52
original
1186 Les gens l'ont consulté

Le traitement des formulaires d'AngularJS est assez simple. Lorsque AngularJS utilise la liaison de données bidirectionnelle pour la validation des formulaires, cela nous aide essentiellement dans le traitement des formulaires.

Il existe de nombreux exemples d'utilisation de cases à cocher, et il existe de nombreuses façons de les gérer. Dans cet article, nous examinerons la liaison des cases à cocher et des boutons radio aux variables de données et ce que nous pouvons en faire.

Créer une forme angulaire

Dans cet article, nous avons besoin de deux fichiers : index.html et app.js. app.js est l'endroit où se trouve tout le code angulaire (il n'est pas gros), et index.html est l'endroit où les actions sont exécutées. Nous créons d’abord le fichier AngularJS.

// app.js
 
var formApp = angular.module('formApp', [])
 
  .controller('formController', function($scope) {
  
    // we will store our form data in this object
    $scope.formData = {};
     
  });
Copier après la connexion

Dans ce fichier, tout ce que nous faisons est de créer l'application Angular. Nous avons également créé un contrôleur et un objet pour contenir toutes les données du formulaire.

Jetons un coup d'œil au fichier index.html Dans ce fichier, nous créons le formulaire puis effectuons la liaison des données. Nous avons utilisé Bootstrap pour mettre en page rapidement la page.

<-- index.html -->
<!DOCTYPE html>
<html>
<head>
 
  <!-- CSS -->
  <!-- load up bootstrap and add some spacing -->
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
  <style>
    body     { padding-top:50px; }
    form      { margin-bottom:50px; }
  </style>
 
  <!-- JS -->
  <!-- load up angular and our custom script -->
  <script src="http://code.angularjs.org/1.2.13/angular.js"></script>
  <script src="app.js"></script>
</head>
 
<!-- apply our angular app and controller -->
<body ng-app="formApp" ng-controller="formController">
<div class="col-xs-12 col-sm-10 col-sm-offset-1">
 
  <h2>Angular Checkboxes and Radio Buttons</h2>
 
  <form>
   
    <!-- NAME INPUT -->
    <div class="form-group">
      <label>Name</label>
      <input type="text" class="form-control" name="name" ng-model="formData.name">
    </div>
     
    <!-- =============================================== -->
    <!-- ALL OUR CHECKBOXES AND RADIO BOXES WILL GO HERE -->
    <!-- =============================================== -->
     
    <!-- SUBMIT BUTTON (DOESNT DO ANYTHING) -->
    <button type="submit" class="btn btn-danger btn-lg">Send Away!</button>
     
  </form>
   
  <!-- SHOW OFF OUR FORMDATA OBJECT -->
  <h2>Sample Form Object</h2>
  <pre class="brush:php;toolbar:false">
    {{ formData }}
  
Copier après la connexion

Une fois la création terminée, nous avons un formulaire avec la saisie du nom. Si tout fonctionne comme nous l'imaginions, si vous tapez quelque chose dans la saisie du nom, vous devriez pouvoir le voir dans la section de balise

 ci-dessous.<br />
<br />
<strong>case à cocher</strong></p>
<p>Les cases à cocher sont très courantes dans les formulaires. Nous verrons ensuite comment Angular utilise ngModel pour implémenter la liaison de données. Si vous avez beaucoup de cases à cocher, il peut parfois être difficile de gérer les données lors de leur liaison à un objet. </p>
<p>À l'intérieur de l'objet formData que nous avons créé, nous avons également créé un autre objet. Nous l'appelons favoriteColors et il demande à l'utilisateur de sélectionner la couleur préférée : <br />
<br />
</p>
<div class="jb51code">
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;">
<!-- MULTIPLE CHECKBOXES -->
<label>Favorite Colors</label>
<div class="form-group">
  <label class="checkbox-inline">
    <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.red"> Red
  </label>
  <label class="checkbox-inline">
    <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.blue"> Blue
  </label>
  <label class="checkbox-inline">
    <input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.green"> Green
  </label>
</div>
Copier après la connexion

Lorsque l'utilisateur clique sur l'une des cases ci-dessus, il voit immédiatement l'objet formData changer. Nous stockons la valeur de la case à cocher dans l'objet fromData.favoriteColors. De cette façon, nous transmettons la valeur de la case à cocher au serveur.

Traitement des clics sur les cases à cocher

Parfois, vous devez faire quelque chose avec quelqu'un après qu'il ait cliqué sur une case à cocher. Le traitement que vous devez effectuer peut être le suivant : calculer une valeur, modifier certaines variables ou effectuer une liaison de données. Pour ce faire, vous créez la fonction dans app.js en utilisant $scope.yourFunction = function() {};. Ensuite, vous pouvez utiliser ng-click="yourFunction()" sur la case à cocher pour appeler cette fonction.

Il existe de nombreuses façons de gérer les cases à cocher d'un formulaire, et Angular propose une méthode très simple : utilisez ng-click pour appeler une fonction définie par l'utilisateur.

Personnalisez la valeur correspondant à la case à cocher

Par défaut, la valeur liée à la case à cocher est vraie ou fausse. Parfois, nous voulons renvoyer d'autres valeurs. Angular fournit un très bon moyen de résoudre ce problème : en utilisant ng-ture-value et ng-false-value.

Nous ajoutons un autre ensemble de cases à cocher, mais cette fois nous n'utilisons plus vrai ou faux, mais des valeurs définies par l'utilisateur.

<!-- CUSTOM VALUE CHECKBOXES -->
<label>Personal Question</label>
<div class="checkbox">
  <label>
    <input type="checkbox" name="awesome" ng-model="formData.awesome" ng-true-value="ofCourse" ng-false-value="iWish">
    Are you awesome&#63;
  </label>
</div>
Copier après la connexion

De plus, nous avons maintenant ajouté une variable géniale à l'objet formData. Si cette valeur est définie sur true à ce moment-là, la valeur renvoyée doit être ofCourse. Si elle est définie sur false, la valeur renvoyée doit être iWish.

case à cocher

Selon la documentation officielle, ceci est différent du bouton radio :

<input type="radio"
  ng-model="string"
  value="string"
  [name="string"]
  [ng-change="string"]
  ng-value="string">
Copier après la connexion

Pour en savoir plus sur les cases à cocher, veuillez suivre la Documentation des cases à cocher angulaires.
Bouton radio

Les boutons radio sont plus faciles que les cases à cocher car il n'est pas nécessaire de stocker des données à choix multiples. Un bouton radio est une valeur. Ajoutons un bouton radio pour voir.

<!-- RADIO BUTTONS -->
<label>Chicken or the Egg&#63;</label>
<div class="form-group">
  <div class="radio">
    <label>
      <input type="radio" name="chickenEgg" value="chicken" ng-model="formData.chickenEgg">
      Chicken
    </label>
  </div>
  <div class="radio">
    <label>
      <input type="radio" name="chickenEgg" value="egg" ng-model="formData.chickenEgg">
      Egg
    </label>
  </div>
</div>
Copier après la connexion

Juste comme ça, le bouton radio est lié à l'objet de données.

Utilisation des boutons radio

Selon la documentation officielle, voici les options proposées :

<input type="radio"
    ng-model="string"
    value="string"
    [name="string"]
    [ng-change="string"]
    ng-value="string">
Copier après la connexion

Étiquettes associées:
source:php.cn
Article précédent:Plug-in d'effet carrousel automatique d'image et de texte implémenté par JQuery_jquery Article suivant:Comment supprimer le caractère # dans l'URL sous AngularJS_AngularJS
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers numéros
Rubriques connexes
Plus>
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal