AngularJS

AngularJS — فرم ها (Forms)

آخرین بروزرسانی: 1404/08/23

فرم ها (Forms)

در AngularJS، «فرم های AngularJS» ورودی ها را به داده وصل می کنند. «دیتابایندینگ (Data-Binding)» یعنی هماهنگی خودکار ورودی و مدل؛ مثل هم زمانی نمره دفتر و کارنامه.

کنترل های ورودی

کنترل های ورودی همان تگ های HTML هستند: input، select، button، و textarea. با آن ها داده می گیریم؛ مثل برگه امتحان.

دیتابایندینگ با ng-model

ng-model ورودی را به مدل می چسباند. مقدار تغییر کند، متن هم تغییر می کند؛ مثل بلندگو برای میکروفون.

<input type="text" ng-model="firstname">

مشاهده در ادیتور

می توانیم مقدار اولیه را در کنترلر تنظیم کنیم.

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.firstname = "John";
});
<\/script>

مشاهده در ادیتور

مقدار مدل را می توانیم در صفحه نشان دهیم.

<form>
  First Name:
  <input type="text" ng-model="firstname">
</form>
<h1>You entered: {{ firstname }}</h1>

مشاهده در ادیتور

چک باکس (Checkbox)

چک باکس مقدار بولی می دهد: true یا false. با آن نمایش را کنترل کن.

 <form>
  Check to show a header:
  <input type="checkbox" ng-model="myVar">
</form>
<h1 ng-show="myVar">My Header</h1>

مشاهده در ادیتور

رادیوباتن ها (Radiobuttons)

چند دکمه با یک مدل می آیند. فقط انتخاب شده حساب می شود؛ مثل رأی.

<form>
  Pick a topic:
  <input type="radio" ng-model="myVar" value="dogs">Dogs
  <input type="radio" ng-model="myVar" value="tuts">Tutorials
  <input type="radio" ng-model="myVar" value="cars">Cars
</form>

مشاهده در ادیتور

سلکت باکس (Selectbox)

در select، مدل برابر مقدار گزینه انتخابی است؛ مثل انتخاب رشته.

<form>
  Select a topic:
  <select ng-model="myVar">
    <option value=""></option>
    <option value="dogs">Dogs</option>
    <option value="tuts">Tutorials</option>
    <option value="cars">Cars</option>
  </select>
</form>

مشاهده در ادیتور

یک فرم کامل با reset

با دکمه reset، کاربر را به مقادیر اصلی برگردان. از angular.copy کمک بگیر.

<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>
  <p>form = {{ user }}</p>
  <p>master = {{ master }}</p>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.master = { firstName: "John", lastName: "Doe" };
  $scope.reset = function() {
    $scope.user = angular.copy($scope.master);
  };
  $scope.reset();
});
<\/script>

مشاهده در ادیتور

نکته: ویژگی novalidate اعتبارسنجی پیش فرض مرورگر را خاموش می کند.

گام های عملی

  1. ماژول و کنترلر بساز.
  2. مدل ها را در $scope تعریف کن.
  3. ng-model را به ورودی ها بده.
  4. دکمه reset را با تابع وصل کن.

برای رویداد کلیک به بخش رویدادها در AngularJS برو. سپس اعتبارسنجی را در فرم های AngularJS ببین.

جمع بندی سریع

  • ng-model دل و روده فرم است.
  • چک باکس بولی می دهد.
  • رادیو فقط یکی را می پذیرد.
  • select مقدار گزینه را می دهد.
  • reset مقادیر را برمی گرداند.